Python中无法使用Selenium,显示ValueError: Timeout value connect was ……, but it must be an int, float or None
报错解释:
这个错误表明在使用Selenium时,尝试与浏览器驱动程序建立连接超时。具体来说,是在尝试建立连接时,设置的超时时间已经过去,但是连接还没有建立成功。
解决方法:
- 检查浏览器驱动程序的路径是否正确,确保Selenium能够找到正确的驱动程序。
- 确认浏览器驱动程序的版本与你安装的浏览器版本兼容。
- 增加连接超时时间的值,可以通过调整
connect_timeout
参数来实现。 - 检查系统的防火墙设置,确保没有阻止Selenium与浏览器驱动程序之间的通信。
- 确保没有其他服务占用了Selenium需要的端口。
- 如果使用的是代理服务器,检查代理设置是否正确。
示例代码调整超时值:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.page_load_strategy = 'normal'
# 设置连接超时时间
desired_capabilities = chrome_options.to_capabilities()
desired_capabilities['goog:chromeOptions']["debuggerAddress"] = "127.0.0.1:9222"
# 调整connect_timeout
desired_capabilities['acceptInsecureCerts'] = True
desired_capabilities['webdriver_accept_untrusted_certs'] = True
driver = webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities=desired_capabilities,
keep_alive=True
)
# 设置超时时间
driver.set_page_load_timeout(30)
在上面的代码中,set_page_load_timeout(30)
方法用于设置页面加载超时时间为30秒。根据实际情况调整这个值。如果问题依然存在,可能需要进一步检查网络环境或系统配置。
评论已关闭