如何停止python selenium webdriver无限页面加载

2024-10-01 09:28:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试加载url https://www.eurexchange.com/exchange-en/products/idx/stx/blc/EURO-STOXX-50-Index-Options-46548

然而,一些页面最近得到无限加载和时间。睡觉()函数selenium.webdriver.execute_脚本('窗口.停止)不能解决这个问题。在

尝试过:

browser.execute_script('window.stip()')
and browser.find_element_by_tag_name("body").sendkeys(Keys.ESCAPE)

仍然可以看到页面加载。在

^{pr2}$

Tags: httpsbrowsercomurlexecuteexchangewww页面
2条回答

我相信您正在寻找WebDriverWait method,这允许您指定一个超时等待一个元素出现在页面中,如果它在分配的时间内没有出现,您可以终止脚本或您希望采取的任何操作。在

示例来自Selenium's Python documentation

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
finally:
    driver.quit()

你可以用一个超时来代替永远不等待

browser.implicitly_wait(60) # 60 seconds to wait && this is only used with chrome
browser.set_page_load_timeout(60) # for other browsers

这将引发异常,因此您需要执行try except语句,例如:

^{pr2}$

相关问题 更多 >