如何使 Selenium 不等待整个页面加载,其脚本速度很慢?

2024-02-02

driver.get (url)等到整页加载。但是抓取页面会尝试加载一些无效的 JS 脚本。所以我的 Python 脚本等待它并且几分钟后不起作用。这个问题可能出现在网站的每个页面上。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.cortinadecor.com/productos/17/estores-enrollables-screen/estores-screen-corti-3000')
# It try load: https://www.cetelem.es/eCommerceCalculadora/resources/js/eCalculadoraCetelemCombo.js 
driver.find_element_by_name('ANCHO').send_keys("100")

如何限制等待时间、阻止文件的 AJAX 加载,还是其他方式?

我还测试了我的脚本webdriver.Chrome(),但会使用 PhantomJS(),或者可能是 Firefox()。因此,如果某种方法使用浏览器设置的更改,那么它一定是通用的。


当 Selenium 默认加载页面/url 时,它遵循默认配置pageLoadStrategy set to normal。为了让 Selenium 不等待整页加载,我们可以配置pageLoadStrategy. pageLoadStrategy支持 3 个不同的值,如下所示:

  1. normal(整页加载)
  2. eager(交互的)
  3. none

这是配置的代码块pageLoadStrategy :

  • Firefox :

    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    
    caps = DesiredCapabilities().FIREFOX
    caps["pageLoadStrategy"] = "normal"  #  complete
    #caps["pageLoadStrategy"] = "eager"  #  interactive
    #caps["pageLoadStrategy"] = "none"
    driver = webdriver.Firefox(desired_capabilities=caps, executable_path=r'C:\path\to\geckodriver.exe')
    driver.get("http://google.com")
    
  • Chrome :

    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    
    caps = DesiredCapabilities().CHROME
    caps["pageLoadStrategy"] = "normal"  #  complete
    #caps["pageLoadStrategy"] = "eager"  #  interactive
    #caps["pageLoadStrategy"] = "none"
    driver = webdriver.Chrome(desired_capabilities=caps, executable_path=r'C:\path\to\chromedriver.exe')
    driver.get("http://google.com")
    

Note : pageLoadStrategy values normal, eager and none是一个要求WebDriver W3C 编辑草案 https://w3c.github.io/webdriver/#navigation but pageLoadStrategy价值为eager仍然是一个WIP(进行中的工作) within Chrome驱动程序执行。您可以在中找到详细的讨论Python 中 Chromedriver Selenium 的“Eager”页面加载策略解决方法 https://stackoverflow.com/questions/51087832/eager-page-load-strategy-workaround-for-chromedriver-selenium-in-python

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 Selenium 不等待整个页面加载,其脚本速度很慢? 的相关文章

  • localhost 拒绝在 chrome mac 中连接

    我正在使用 webpack dev server 使用此命令运行服务器 npm run dev 当我使用npm start 它工作得很好 但不想这样做 因为它是为了生产 到目前为止我的服务器运行良好http 本地主机 3000 http l
  • TF map_fn 或 while_loop 用于不同形状的张量列表

    我想处理不同形状的张量序列 列表 并输出另一个张量列表 考虑每个时间戳上具有不同隐藏状态大小的 RNN 就像是 输入 tf ones 1 2 2 tf ones 2 2 3 tf ones 3 2 1 输出 tf zeros 1 2 4 t
  • 更新 Sqlalchemy 中的多个列

    我有一个在 Flask 上运行的应用程序 并使用 sqlalchemy 与数据库交互 我想用用户指定的值更新表的列 我正在使用的查询是 def update table value1 value2 value3 query update T
  • 根据开始列和结束列扩展数据框(速度)

    我有一个pandas DataFrame含有start and end列 加上几个附加列 我想将此数据框扩展为一个时间序列 从start值并结束于end值 但复制我的其他专栏 到目前为止 我想出了以下内容 import pandas as
  • 登录网站并使用 python 请求下载文件

    我有一个带有 HTML 表单的网站 登录后 它会将我带到 start php 站点 然后将我重定向到overview php 我想从该服务器下载文件 当我单击 ZIP 文件的下载链接时 链接后面的地址是 getimage php path
  • 如何将 self 传递给装饰器?

    我该如何通过self key下面进入装饰器 class CacheMix object def init self args kwargs super CacheMix self init args kwargs key func Cons
  • Apache Spark 中的高效字符串匹配

    我使用 OCR 工具从屏幕截图中提取文本 每个大约 1 5 句话 然而 当手动验证提取的文本时 我注意到时不时会出现一些错误 鉴于文本 你好 我真的很喜欢 Spark 我注意到 1 像 I 和 l 这样的字母被 替换 2 表情符号未被正确提
  • PySide6.1 与 matplotlib 3.4 不兼容

    当我只安装PySide6时 GUI程序运行良好 但是一旦我安装了matplotlib及其依赖包 包括pyqt5 则GUI程序将无法运行并输出以下错误消息 This application failed to start because no
  • 如何使用 Django 项目设置 SQLite?

    我已阅读 Django 文档 仅供参考 https docs djangoproject com en 1 3 intro tutorial01 https docs djangoproject com en 1 3 intro tutor
  • 乘以行并按单元格值附加到数据框

    考虑以下数据框 df pd DataFrame X a b c d Y a b d e Z a b c d 1 2 1 3 df 我想在 列中附加数字大于 1 的行 并在该行中的数字减 1 df 最好应该 然后看起来像这样 或者它可能看起来
  • Python 惰性迭代器

    我试图了解迭代器表达式如何以及何时被求值 以下似乎是一个懒惰的表达 g i for i in range 1000 if i 3 i 2 然而 这个在构造上失败了 g line strip for line in open xxx r if
  • 如何使用 paramiko 查看(日志)文件传输进度?

    我正在使用 Paramiko 的 SFTPClient 在主机之间传输文件 我希望我的脚本打印文件传输进度 类似于使用 scp 看到的输出 scp my file user host user host password my file 1
  • Python 类型安全吗?

    根据维基百科 https en wikipedia org wiki Type system Type safety and memory safety 如果一种语言不允许违反类型系统规则的操作或转换 计算机科学家就认为该语言是 类型安全的
  • 在 Sphinx 中,有没有办法在声明参数的同时记录参数?

    我更喜欢在声明参数的同一行记录每个参数 根据需要 以便应用D R Y http en wikipedia org wiki Don t repeat yourself 如果我有这样的代码 def foo flab nickers a ser
  • 如何使用 Keras ImageDataGenerator 预测单个图像?

    我已经训练 CNN 对图像进行 3 类分类 在训练模型时 我使用 keras 的 ImageDataGenerator 类对图像应用预处理功能并重新缩放它 现在我的网络在测试集上训练得非常准确 但我不知道如何在单图像预测上应用预处理功能 如
  • 对数据帧的每 2 小时数据进行 Groupby

    我有一个数据框 Time T201FN1ST2010 T201FN1VT2010 1791 2017 12 26 00 00 00 854 69 0 87 1792 2017 12 26 00 20 00 855 76 0 87 1793
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • 如何使用 matplotlib 为圆柱体的每个单独面添加颜色

    我正在尝试为圆柱体的每个面着色 但是我不确定如何进行 我尝试了以下方法 for i in range 10 col append for i in range 10 for j in range 20 col i append plt cm
  • 如何在 robobrowser-python 中发出 POST 请求

    http robobrowser readthedocs org en latest api html http robobrowser readthedocs org en latest api html 我正在尝试使用 APIbrows
  • Python:高精度time.sleep

    你能告诉我如何在 Win32 和 Linux 上的 Python 2 6 中获得高精度睡眠函数吗 您可以在中使用浮点数sleep http docs python org library time html time sleep 该参数可以

随机推荐

  • 有没有办法在 Visual Studio 2019 中发布 .NET 标准库而不生成 .nupkg?

    我的理解是 当您发布 NET 标准库时 预期的行为是生成一个 nupkg 我有内部 Net 标准库 我维护这些库以供内部项目使用 典型的工作流程是发布库 然后将发布的文件复制到使用项目 这不是我应该做的事情吗 我对发布 NET 标准库时缺乏
  • MySQL的设置操作

    MySQL可以使用Set操作吗intersect and except 如果可以请举个例子 如果不能的话 该怎么操作呢 在mysql中可以使用intersect 但是你必须稍微不同地编写它 这是一个例子 和here http www bit
  • 尝试从 Bitbucket 迁移到 Github,出现文件大小错误

    我正在尝试从 bitbucket 迁移到 github 我所做的就是从远程删除 bitbucket 并添加我的 github 帐户 然后我尝试git push u origin master但我有一个large file detected错
  • MooTools 中的 .getScript() 等效项?

    我想知道是否有一个与 jQuery 等效的 MooTools getScript 我非常确定 MooTools 中存在该文件 但我还没有找到它 我对 MooTools 不太熟悉 但看起来你可以使用Asset javascript http
  • 将 float64 数组转换为 float32 数组

    我有一个 float64 数组 想要将每个值转换为 float32 我试过了 What I have features64 120 float64 What I ve tried features32 120 float32 feature
  • 如何从命令行构建android apk?

    如何从命令行构建 APK 文件 我试过了 MSBuild myProject dproj p Config Release p Platform Android 但不会生成 APK 文件 只生成 so 文件 一些实验表明 建议的各种行动方案
  • 在 TypeScript 中使用符号作为对象键类型

    我正在尝试用 a 定义一个对象symbol https developer mozilla org en US docs Web JavaScript Reference Global Objects Symbol作为 key type 因
  • #ifdef DEBUG 与 #if DEBUG

    当使用编译器指令时 我不清楚以下两个代码片段中哪一个是正确 首选以及原因 似乎我见过的大多数开发人员和开源项目都使用第一个 但我也看到第二个也经常使用 ifdef DEBUG self doSomethingOnlyWhenDebuggin
  • 为什么应该使用基于文档的数据库而不是关系数据库?

    为什么我应该使用基于文档的数据库 如 CouchDB 而不是使用关系数据库 是否存在基于文档的数据库比关系数据库更适合的典型应用程序或领域 也许你不应该 第二个最明显的答案是 如果您的数据不相关 则应该使用它 这通常表现为没有简单的方法将数
  • Vertx JDBC 客户端 queryWithParams - 如何添加列表?

    我有带条件的 SQL 查询currency in 我正在使用 vertx JDBC 客户端queryWithparams方法 它接收 JsonArray 中的查询参数 我怎样才能传递我的可能列表currency查询的值 我试过new Jso
  • 购物车 $_SESSION 问题

    我正在开发一个基本的购物车 但是 SESSION 变量似乎未正确存储或访问 例如 如果您前往它将显示项目名称 但是在没有任何 GET 变量的情况下刷新 cart php 时 它不会返回任何内容 我究竟做错了什么
  • 如何使用javascript或html打开手机chrome浏览器

    我有两个问题 我要这个 我想使用 javascript 或 html 在其他 Android 移动网络应用程序 例如 naver firefox 等 上打开带有 url 的 chrome 浏览器 所以例子 如果用户在移动网络应用程序上单击
  • 在一台机器上运行多个 MySQL 服务器

    我们可以在一台机器上运行多个 MySQL 服务器吗 Thanks 是的 您只需在单独的端口上运行它们并将它们指向不同的 lib 目录以获取其数据 这是一个很好的参考 http dev mysql com doc refman 5 1 en
  • ASP.NET C# 大文件上传时出现 OutofMemoryException

    我有以下文件上传处理程序 public class FileUploader IHttpHandler public void ProcessRequest HttpContext context HttpRequest request c
  • 如何在表过滤器中显示“未找到记录”消息

    我根据两个 tds 在我的桌子上应用过滤器 过滤器正在工作 但如果没有值匹配 我想显示 未找到记录 消息 这是一个示例演示 filter click function var tdScoring tdEarning var scoring
  • AttributeError:“NoneType”对象没有属性“dpi_scale_trans”

    通过 StackOverflow 检查我遇到的上述错误的可能解决方案后 我发现一些解决方案无法解决这个特定问题 下图显示了尝试在图上绘制多个轴时遇到的错误和获得的不需要的图 This is an image of the expected
  • 错误模板设计

    似乎我在这个网站上读到了关于这个问题的另一个问题 答案 但我不记得答案是什么 现在我找不到原始帖子 我不喜欢 WPF 中的默认错误模板 我了解如何更改此错误模板 但是 如果我将一些内容添加到文本框的末尾 则文本框的大小不会改变 并且添加的内
  • Collections.shuffle() 真的足够随机吗?实际例子似乎否定了这个说法

    我有 1000 个独特的对象java util List 每个都引用一个图像 1000 个列表中的每个图像都是唯一的 现在我想对它们进行洗牌 以便我可以使用前 20 个对象并将它们呈现给网站用户 然后 用户可以单击 随机播放 按钮 然后我再
  • Cordova 应用程序中的触发事件

    我正在尝试触发事件 backbutton pause resume等 从浏览器手动在cordova中 用于调试 我按照以下方式进行 window trigger backbutton 当我们使用注册事件处理程序时 document on b
  • 如何使 Selenium 不等待整个页面加载,其脚本速度很慢?

    硒driver get url 等到整页加载 但是抓取页面会尝试加载一些无效的 JS 脚本 所以我的 Python 脚本等待它并且几分钟后不起作用 这个问题可能出现在网站的每个页面上 from selenium import webdriv