昨天早上我来到办公室,发现我的 Capybara 测试无法与 Chrome 交互。我正在看
Selenium::WebDriver::Error::UnknownError: unknown error: unable to discover open pages
谷歌搜索发现这可能是由过时的
chromedriver
引起的。或 selenium-webdriver
,这听起来很合理,因为很长一段时间都没有更新(我认为 chromedriver
位于 2.2
和 selenium-webdriver
位于 2.35.1
),并且因为 Chrome 自动更新为 32.0.1700.77
1 月 14 日,这对我来说似乎是很好的可靠证据。所以我更新了
selenium-webdriver
至 2.39.0
.弄清楚 chromedriver
的版本我一直在用,结果发现更难。我有一个版本的 chromedriver
坐在我认为我的代码所指的下载目录中,但我在 PATH
中找不到我的下载目录(顺便说一下,我正在使用 OS X)。我尝试用版本 2.8
替换此文件来自 here ,但没有效果。我开始怀疑我的下载目录中的版本是最初使用的版本,所以我使用 brew 来安装它。 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
包含 /usr/local/bin
,其中有一个 chromedriver
链接到 brew 安装到的位置。据我了解,这应该允许我的自动化检测并启动 chromedriver
.不幸的是,我的问题仍未解决。我留
unable to discover pages
.任何人都可以确认我已经完成了通常设置 chromedriver
的操作。 ?旁问:下载后
chromedriver 2.8
直接并使用 brew
安装它,我尝试同时启动下载的版本和 brew
版本以确认任一版本都可以成功启动。我确定它们实际上都是版本 2.8
,但是当我启动其中一个时,控制台会说:Starting ChromeDriver (v2.2) on port 9515
这是正常的吗?我当然没想到它会说
v2.2
, 但除了 2.8
没有其他版本由 brew 安装(所以我怀疑 brew
不小心使用了旧版本),当我运行直接下载的文件时,我很确定它是版本 2.8
来自 Chromedriver 网站。这是他们的疏忽,还是v2.2
指的是别的东西,虽然这看起来不太可能?
最佳答案
当您使用 homebrew
下载时,经常验证 chrome 驱动程序版本会很棘手。 .我建议下载驱动程序并将其保存在映射到 PATH 的文件夹中。
因此,通过以下步骤可以轻松维护或识别驱动程序版本:
chromeDriver -v
关于selenium-webdriver - 如何确认我使用的是正确的 chromedriver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21166408/