WebDriverException:消息:Chrome无法长时间访问

时间:2019-08-30 16:39:37

标签: python selenium google-chrome selenium-webdriver selenium-chromedriver

这是代码:

driver = webdriver.Chrome()
while True:
   #do thing that require hours
   #then i use selenium once
driver.get(link)

我需要先打开硒,然后做一些需要几个小时的事情,因为当我打开硒时,我需要准备好并且要速度。如果将driver = webdriver.Chrome()放在下面,则会降低所有速度 我不知道它是否相关,但是我使用nohup命令运行此代码。

跟踪:

Traceback (most recent call last):
  File "Scraper.py", line 84, in <module>
    main()
  File "Scraper.py", line 74, in main
    waitForSomething()
  File "Scraper.py", line 54, in waitForSomething
    fillForm(str(link)[2:-2])
  File "Scraper.py", line 30, in fillForm
    driver.get(link)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_resp$
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: chrome not reachable
  (Session info: chrome=192.168.0.0)
  (Driver info: chromedriver=2.36.540471 (9c759b81a907e70363c6312294d30b6ccccc2752),platform=Linux 4.9.0-9-amd64 x$

2 个答案:

答案 0 :(得分:2)

最初,我问自己和@GregBurghardt在评论中一直问的问题相同,直到我分析了详细的错误堆栈跟踪。

,在标记为#do thing that require hours的步骤中发生了令人惊讶的事情。因此,无需将 Chrome 浏览器版本显示为 chrome=76.0 chrome=75.0 chrome=74.0 它显示:

(Session info: chrome=192.168.0.0)

这真是令人惊讶。

直到和除非您向我们更新 Chrome 版本更改为这样的值的原因和方式,否则几乎不可能分析问题。


话虽如此,可能您的主要问题是正在使用的二进制版本之间的不兼容性

  • 您正在使用 chromedriver = 2.36
  • chromedriver=2.36的发行说明中明确提到以下内容:
  

支持 Chrome v63-65

  • 大概您正在使用最新的 chrome = 76.0
  • ChromeDriver v76.0的发行说明中明确提到以下内容:
  

支持 Chrome 76版

  • 您不知道您的 Selenium Client 版本。

因此 ChromeDriver v2.36 Chrome浏览器v76.0

之间存在明显的不匹配

解决方案

确保:

  • 已升级到当前级别Version 3.141.59
  • ChromeDriver 已更新为当前的ChromeDriver v76.0级别。
  • Chrome 已更新为当前的 Chrome版本76.0 级别。 (根据ChromeDriver v76.0 release notes
  • 通过您的 IDE
  • 清理您的项目工作区重建您的项目,并且仅具有必需的依赖项。
  • 如果您的基本 Web客户端版本太旧,则将其卸载并安装最新版本的 Web客户端 GA。
  • 进行系统重启
  • 非root用户用户的身份执行@Test
  • 始终在driver.quit()方法内调用tearDown(){},以优雅地关闭和销毁 WebDriver Web Client 实例。

参考:

答案 1 :(得分:0)

就我而言,我使用服务器来启动应用程序。这是因为我有很多 google-chrome 活动进程在运行,所以 chrome 不堪重负。

您可以使用 ps -aux 命令进行检查并查看 google 进程。

就我而言,因为我没有使用 try driver.get(url) , except: driver.close() 所有那些失败的尝试都在我的服务器中保持打开状态。

我用killall usernamehere

杀死了他们

然后它又起作用了。

希望它也适合你