我昨天早上来到办公室,发现我的Capybara测试无法与Chrome互动。我正在看
Selenium::WebDriver::Error::UnknownError: unknown error: unable to discover open pages
谷歌搜索显示这可能是由于过时的chromedriver
或selenium-webdriver
引起的,这听起来很合理,因为它们都没有在很长一段时间内更新过(我认为{{1} {}}位于chromedriver
而2.2
位于selenium-webdriver
),自1月14日Chrome自动更新为2.35.1
后,这似乎是我的明确证据。< / p>
所以我已将32.0.1700.77
更新为selenium-webdriver
。弄清楚我一直在使用的2.39.0
版本实际上变得更加困难。我的下载目录中有一个chromedriver
版本,我想到我的代码所指的,但是我找不到chromedriver
中的下载目录(我' m顺便使用OS X)。我尝试使用here中的版本PATH
替换此文件,但它没有任何效果。我对下载目录中的版本是首先使用的版本持怀疑态度,所以我用brew来安装它。 2.8
现在产生:
brew info chromedriver
看起来不错。我的chromedriver: stable 2.8
http://code.google.com/p/chromedriver/
/usr/local/Cellar/chromedriver/2.8 (2 files, 21M) *
Built from source
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/chromedriver.rb
包含PATH
,其中包含安装到的位置brew的/usr/local/bin
链接。据我了解,这应该允许我的自动化检测并启动chromedriver
。
不幸的是,我的问题仍未得到解决。我留下chromedriver
。任何人都可以确认我已经完成了设置unable to discover pages
的正常操作吗?
方面问题:直接下载chromedriver
并将其与chromedriver 2.8
一起安装后,我尝试单独启动下载的版本和brew
版本以确认这两个版本都可以成功启动。我确定它们实际上都是版本brew
,但当我启动其中任何一个时,控制台都说:
2.8
这是正常的吗?我当然不希望它说Starting ChromeDriver (v2.2) on port 9515
,但除了{(1}} brew之外没有其他版本(所以我怀疑v2.2
是偶然使用旧版本),当我运行我直接下载的文件,我很确定它是Chromedriver网站上的版本2.8
。这是他们的疏忽,还是brew
是指其他东西,尽管可能看起来不太可能?
答案 0 :(得分:3)
yourDriver.exe -v
答案 1 :(得分:0)
ChromeDriver是at version 2.16 now。我建议手动更新驱动程序,而不是使用自制程序想要更新的旧版本进行更新。
答案 2 :(得分:0)
您可以使用命令行:pip freeze
列出您安装的所有软件包及其版本。
或者您也可以使用pip show <package name>
检查包的详细信息,其中还包括包版本。