如何让Selenium不要等到整个页面加载后脚本运行缓慢?

selenium要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设置为normal。为了使Selenium不等待整个页面加载,我们可以配置pageLoadStrategypageLoadStrategy支持3个不同的值,如下所示:

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

这是配置代码的代码块pageLoadStrategy:

火狐:

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")

铬:

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")

以上是 如何让Selenium不要等到整个页面加载后脚本运行缓慢? 的全部内容, 来源链接: utcz.com/qa/434441.html

回到顶部