首页 > 解决方案 > 即使经过显式等待,页面也会持续加载很长时间(Selenium Python)

问题描述

目前,我正在使用selenium. 具体来说,我使用selenium每个请求访问网站 X。导航到网站 X 后,WebDriver 应该等待某个元素的存在(最多 5 秒)。然而,对我来说很奇怪的是,有时 WebDriver 加载网站 X 的时间很长。通常为 20-45 秒。当我在每个请求之后都实现了显式等待时,这怎么可能发生?这是代码:

   for i in range(1000):
        driver = webdriver.Chrome()
        driver.get('https://www.canva.com/login')
        WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'span.sMwixw')))
        driver.close()

谁能解释这种行为?如果是这样,我该如何避免它?也就是说,按预期等待每个请求的时间不超过 5 秒。

标签: pythonpython-3.xseleniumselenium-webdriverwebdriverwait

解决方案


听起来您想将页面加载策略设置为无:

driver = webdriver.Chrome(options=opts, desired_capabilities={"page_load_strategy": "none"})

否则它将等到它认为页面已加载,然后选择器再等待 5 秒


推荐阅读