0

我正在尝试使用 webdriver 启动 chrome 浏览器(版本 26.0)。我收到以下错误消息。

Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. 
    at com.google.common.base.Preconditions.checkState(Preconditions.java:176)
    at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:105)
    at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:69)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:107)
    at googleSearch.main(googleSearch.java:13)

我使用的代码:

driver = new ChromeDriver();
driver.navigate().to("http://www.google.com/");

我使用 mac 10.8.2。

4

4 回答 4

5

为此,您需要:

  1. 安装 Chrome
  2. 安装 Chrome 网络驱动程序
  3. 确保路径中有 chrome Web 驱动程序,例如在 Windows 上指向chromedriver2_win32_0.8. 您可以通过以下任一方式将其放入您的路径中:(a)修改您的 Windows 路径环境变量,或者;(b) 将以下内容添加到您的 java 命令行选项中:
    -Dwebdriver.chrome.driver='/path/to/driver'

-Dwebdriver.chrome.driver='/path/to/driver' 如果在从命令行创建节点时必须添加使用 selenium 网格 。

于 2013-05-18T23:58:21.067 回答
1

1) 在没有 GRID 的情况下使用 selenium:

 System.setProperty("webdriver.chrome.driver","/absolute/path/to/chromedriver");
 driver =  new ChromeDriver();

做这项工作。

2) 如果使用带有 GRID 的 selenium:

System.setProperty("webdriver.chrome.driver","/absolute/path/to/chromedriver");
driver =  new ChromeDriver();

从命令行,在为 chrome 浏览器创建节点时,需要通过

-Dwebdriver.chrome.driver='/absolute/path/to/chromedriver'

上述两项更改为我完成了这项工作,除此之外,我得到了这个 libnss3.so not found 错误,我通过在 /usr/lib/x86_64-linux-gnu/ 文件夹中创建 libnss3.so 的符号链接解决了这个错误到 / usr/lib/

ln -s /usr/lib/x86_64-linux-gnu/libnss3.so /usr/lib/libnss3.so

PS:还要确保根据您的系统使用 64 位或 32 位版本的 chrome 驱动程序。

于 2015-04-15T09:52:57.437 回答
0

要使 chrome 与 selenium-webdriver 一起工作,您不仅需要安装一个工作的 chrome 浏览器,还需要安装chromedriver可执行文件。请注意,这是两个不同的可执行文件,都需要指定。

于 2013-05-18T23:53:27.067 回答
0

更改文件的权限,然后再次运行您的代码。打开命令提示符并导航到您的 chrome exe 所在的目录并写入

chmod 777 文件名

希望它能解决你的问题。

于 2014-10-08T11:35:54.597 回答