python - 如何使用 Selenium WebDriver (Chrome) 打开页面,而无需等待它在 Python 中加载?
问题描述
driver.get(URL)
函数在返回执行之前等待页面完成加载。
在 Java 中有一个方法driver.navigate().to(URL)
,它不等待页面加载,但是,我在 Python 中找不到这样的方法。
对于 Firefox,我可以运行profile.set_preference("webdriver.load.strategy", "unstable")
,但是 Chrome 没有这样的偏好。
还有driver.set_page_load_timeout(0.2)
withTimeoutException
处理 但是,当异常被处理时,chrome 驱动程序停止加载页面。
编辑:稍微改述了这个问题并添加了一个不起作用的解决方案。
解决方案
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
caps = DesiredCapabilities().CHROME
caps["pageLoadStrategy"] = "none" # Do not wait for full page load
driver = webdriver.Chrome(desired_capabilities=caps, executable_path="path/to/chromedriver.exe")
driver.get('some url')
#some code to run straight away
此代码不会等到页面完全加载后才移至下一行。使用“无”页面加载策略时,您可能必须进行自定义等待以检查您需要的元素或元素是否已完成加载。
你可以使用:
import time
time.sleep()
或者,如果您只想在加载元素之前等待所需的时间:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
WebDriverWait(driver, timeout=10).until(
ec.visibility_of_element_located((By.ID, "your_element_id"))
)
这应该可以帮助您完成任何您想做的事情。由于您没有提供代码,因此我只能假设这会起作用,因为我无法为特定网页提供特定答案。
推荐阅读
- python - 如何在python中的每个命令之后添加积分
- python - 筛选 pandas 数据框中列中的值大于 x 或 NaN 的行
- visual-studio-code - vscode+latex 研讨会中的意外片段行为
- sql - 识别sql中的关系
- r - 当日期在 x 轴上并且状态时,提取数据框中第一次出现变量的行
- c# - Bouncy Castle pem Reader 在读取公钥时抛出异常
- python - 从 google api 收到的列表中的嵌套字典未得到解析
- sql-server - 根据外键表中的列更新表列
- rust - 如何决定函数输入参数何时应该是引用?
- python - Ebay Find API parse error Document is empty, line 1