Selenium执行implicitly_wait时报错'ms must be a double'如何解决?
报错原因
- 最核心的问题是Chrome浏览器与Chromedriver版本严重不匹配:你当前使用的Chrome版本为95.0.4638.69,而部署的Chromedriver版本为2.41,该驱动版本仅适配Chrome 67~69版本,跨度过大的版本差导致Selenium调用驱动的接口协议不兼容。
- 版本不兼容的前提下,
implicitly_wait()传入的整数参数无法被旧版驱动识别,驱动要求该位置传入双精度浮点型的数值,对应报错提示'ms' must be a double。
修复方案
- 优先方案:替换为匹配版本的Chromedriver
下载对应95.0.4638.69版本的Chromedriver,替换原路径C:\Program Files\Google\Chrome\Application\chromedriver.exe下的旧驱动即可,版本匹配后原有代码无需修改即可正常运行。 - 临时兼容方案:修改参数类型
如果暂时无法更换驱动,可以将代码中driver.implicitly_wait(5)修改为driver.implicitly_wait(5.0),传入浮点型参数适配旧版驱动的参数要求。注意该方案仅为临时兼容,版本不匹配可能会触发其他未知运行错误,不建议长期使用。
内容的提问来源于stack exchange,提问作者Xiaowu Zhao
相关产品推荐
相关产品推荐

