Mac + Selenium + Chrome =找不到Chrome二进制文件

时间:2016-05-22 06:29:14

标签: java macos selenium-webdriver

您好我正试图在Mac PC上使用eclipse设置selenium。 当我下载ChromeDriver并将其放在以下文件夹中时:

System.setProperty("webdriver.chrome.driver","/Users/george/Downloads/chromedriver");
WebDriver driver = new ChromeDriver();

我运行代码。 然后我得到以下异常:

  

启动ChromeDriver 2.21.371459   (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4)在33424港口   允许连接。线程" main"中的例外情况   org.openqa.selenium.WebDriverException:未知错误:找不到   Chrome二进制文件(驱动程序信息:chromedriver = 2.21.371459   (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),platform = Mac OS X 10.10.5   x86_64)(警告:服务器未提供任何堆栈跟踪   信息)命令持续时间或超时:312毫秒构建信息:   版本:' 2.53.0',修订版:' 35ae25b',时间:' 2016-03-15 17:00:58'   系统信息:主持人:' Georges-Mac-mini.local',ip:' 192.168.1.2',   os.name:' Mac OS X',os.arch:' x86_64',os.version:' 10.10.5',   java.version:' 1.7.0_25'司机信息:   org.openqa.selenium.chrome.ChromeDriver

所以我假设某些二进制文件丢失了?请注意,我经常使用Chrome浏览器作为我的浏览器..我不知道这是否相关。 我的电脑是mac。我已阅读ChromeDriver网站,但我不明白究竟要做什么。我在导航到有点奇怪的路径时遇到了问题:" Google Drive"而不是" Google / Drive"或路径 " cd Chrome \ Apps.localized /"或" / Applications / Google \ Chrome.app/Contents/MacOS/Google \ Chrome"。我的意思是,wt ??那些来回斜线???我刚才在Linux上有一些东西但是在这里......我陷入困境和迷茫 在Windows上更容易的东西..你刚刚在本地下载了一个.exe文件,指向驱动程序的文件选项,一切都很顺利。我无法找到有关mac特定的信息。

有人可以帮忙吗?

由于

6 个答案:

答案 0 :(得分:1)

堆栈跟踪表明它无法找到chrome webdrive的二进制文件。如果您还没有下载,则需要下载。下载chrome webdriver后,将应用程序指向二进制文件。

如果您有一个带空格的路径,例如

/Applications/Google Chrome.app/Contents/MacOS/Google Chrome

你需要像往常一样用反斜杠来逃避空间

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome

反斜杠后跟一个空格\,告诉参数解析器不要将该空格用作分隔符,而是将其作为路径的一部分包含在内。

答案 1 :(得分:1)

“找不到Chrome二进制文件”只是意味着操作系统无法找到Chrome应用。只需检查chrome安装目录。正确的目录应为“/ Applications / Google Chrome.app”。如果从第三平台下载chrome,则该目录可能是“/Applications/Chrome.app”。这使得操作系统无法找到你的铬。

答案 2 :(得分:0)

除了尝试使用带斜线和不带斜线的路径(红宝石驱动程序期望空格不能转义)之外,此问题还可能是由于Chrome和Chromedriver之间的版本不匹配引起的。

特别是,当前稳定的Chromedriver版本通常不支持Chrome Canary。 https://sites.google.com/a/chromium.org/chromedriver/chromedriver-canary链接有每晚的版本。在Mac版本的搜索框中输入正确的前缀,然后滚动到最新版本(如果是的话,界面很烂)。

也有很大的机会也行不通。最好的选择是安装稳定的Chrome版本。

答案 3 :(得分:0)

我发现将selenium-webdriver升级到3.142.3并将Capybara升级到3.20.2可以解决此问题。这需要对我的webdriver配置进行一些更改:

capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
  'goog:chromeOptions': {
     args: %w(--disable-gpu --headless --no-sandbox --window-size=1024,768)
  }
)

driver = Capybara::Selenium::Driver.new app, {
  browser: :chrome,
  desired_capabilities: capabilities,
  http_client: client,
}

答案 4 :(得分:-2)

在您的路径中使用双斜杠:

//Test Data//Drivers//chromedriver

并将chrome驱动程序exe复制并粘贴到其他位置。

答案 5 :(得分:-2)

当我意识到自己没有安装Chrome浏览器以尝试使用它时,我正面对着"cannot find Chrome binary"

伙计们,不要在家做