Python Selenium启动报错:Edge驱动连接超时值异常求助
Selenium 4.10.0 + Edge驱动启动报错的解决方法
问题描述
在MacBook的VSCode中使用Python Selenium实现自动化,已安装Selenium 4.10.0,Edge浏览器及驱动版本统一为113.0.1774.35,运行以下代码时出现超时相关错误:
from selenium import webdriver driver=webdriver.Edge('/Users/ME/Documents/Drivers/EdgeDriver/msedgedriver') driver.get('https://www.google.com') print('Press any key to continue...')
报错信息:
Exception has occurred: ValueError Timeout value connect was <object object at 0x100800460>, but it must be an int, float or None. TypeError: float() argument must be a string or a real number, not 'object' During handling of the above exception, another exception occurred: File "/Users/aethelflaed/Documents/Coding Python/First_Selenium.py", line 2, in <module> driver=webdriver.Edge('/Users/ME/Documents/Drivers/EdgeDriver/msedgedriver') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ValueError: Timeout value connect was <object object at 0x100800460>, but it must be an int, float or None.
解决方法
Selenium 4.6.0及以上版本已内置Selenium Manager,webdriver.Edge()直接传驱动路径字符串的写法已不再支持,需通过以下两种方式修正:
方案1:依赖Selenium自动管理驱动(推荐)
无需手动下载驱动,Selenium会自动匹配对应版本的Edge驱动,代码简化为:
from selenium import webdriver driver = webdriver.Edge() driver.get('https://www.google.com') print('Press any key to continue...') input() # 补充该行实现“按任意键继续”的逻辑 driver.quit() # 确保驱动进程正常关闭
方案2:手动指定驱动路径(通过Service类)
若坚持使用本地下载的驱动,需导入Service类来传入路径:
from selenium import webdriver from selenium.webdriver.edge.service import Service service = Service('/Users/ME/Documents/Drivers/EdgeDriver/msedgedriver') driver = webdriver.Edge(service=service) driver.get('https://www.google.com') print('Press any key to continue...') input() driver.quit()
内容的提问来源于stack exchange,提问作者jast
相关产品推荐
相关产品推荐

