【问题标题】:selenium.common.exceptions.WebDriverException: Message: invalid argument: value must be a non-negative integer with ChromeDriver and Seleniumselenium.common.exceptions.WebDriverException:消息:无效参数:值必须是 ChromeDriver 和 Selenium 的非负整数
【发布时间】:2019-11-02 12:06:21
【问题描述】:

我正在研究 selenium (3.5.0)、Python 3.6.8 我想测试下面写的简单代码

driver.implicitly_wait(10)
driver.get(url)
print(driver.title)
sleep(6)
driver.close()

但它会引发错误,即 selenium.common.exceptions.WebDriverException: Message: invalid argument: value must be a non-negative integer 我没有找到我出错的地方

我发现有人在这个平台上提出了类似的问题,但我的问题没有得到解决 请在这方面帮助我

【问题讨论】:

标签: python-3.x selenium google-chrome selenium-webdriver selenium-chromedriver


【解决方案1】:

此错误消息...

selenium.common.exceptions.WebDriverException: Message: invalid argument: value must be a non-negative integer

...暗示 ChromeDriver 无法启动/生成新的 WebBrowserChrome 浏览器 会话。


您的主要问题是您使用的二进制文件版本之间的不兼容性,如下所示:

  • 大概你用的是最新的chromedriver=77.0
  • 大概您正在使用 chrome= 77.0
  • 您的 Selenium Client 版本是 3.6.8,它是古老的。

因此 Selenium Client v3.6.8ChromeDriver v77.0Chrome 浏览器 v77.0 之间存在明显的不匹配性 /p>


解决方案

确保:

  • Selenium 升级到当前级别 Version 3.141.59
  • ChromeDriver 已更新到当前的ChromeDriver v77.0 级别。
  • Chrome 已更新至当前 Chrome 版本 77.0 级别。 (根据ChromeDriver v77.0 release notes
  • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
  • 如果您的基本 Web 客户端 版本太旧,请卸载它并安装最新的 GA 和发布版本的 Web 客户端
  • 进行系统重启
  • 非root用户身份执行@Test
  • 始终在 tearDown(){} 方法中调用 driver.quit() 以优雅地关闭和销毁 WebDriverWeb Client 实例。

【讨论】:

  • 很好的解释
  • “如果您的基本 Web 客户端版本太旧,请卸载它并安装最新的 GA 和发布版本的 Web 客户端。” - 不是每个人都可以安装随机包他们的机器或客户端机器。一些组织有治理,必须遵守政策和程序。
  • @jww 同意。然而,自动化测试是完全不同的艺术,测试台需要进行最佳配置以获得预期的投资回报率。
  • @jww 你可以随时降级到兼容版本...见version-selection
猜你喜欢
  • 1970-01-01
  • 2019-11-06
  • 1970-01-01
  • 1970-01-01
  • 2019-10-22
  • 2020-06-09
相关资源
最近更新 更多