我正在尝试使用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。
答案 0 :(得分:5)
为此,您需要:
chromedriver2_win32_0.8
的内容。您可以通过以下任一方式将其放在路径中:(a)修改Windows路径环境变量,或; (b)将以下内容添加到java命令行选项中:-Dwebdriver.chrome.driver='/path/to/driver'
使用硒网格的情况
-Dwebdriver.chrome.driver='/path/to/driver'
必须在从命令行创建节点时添加。
答案 1 :(得分:1)
1)如果使用不含GRID的硒:
System.setProperty("webdriver.chrome.driver","/absolute/path/to/chromedriver");
driver = new ChromeDriver();
完成这项工作。
2)如果使用含GRID的硒:
System.setProperty("webdriver.chrome.driver","/absolute/path/to/chromedriver");
driver = new ChromeDriver();
从命令行开始,在为chrome浏览器创建节点时,需要传递
-Dwebdriver.chrome.driver='/absolute/path/to/chromedriver'
以上两个更改为我完成了这项工作,除此之外我得到了这个libnss3.so找不到错误,我通过在/ usr / lib /中创建一个libnss3.so的符号链接来解决x86_64-linux-gnu /文件夹到/ usr / lib /
ln -s /usr/lib/x86_64-linux-gnu/libnss3.so /usr/lib/libnss3.so
PS:还要确保根据您的系统使用64位或32位版本的Chrome驱动程序。
答案 2 :(得分:0)
要使chrome与selenium-webdriver一起使用,您不仅需要安装有效的Chrome浏览器,还需要chromedriver可执行文件。请注意,这些是需要指定的两个不同的可执行文件。
答案 3 :(得分:0)
更改文件的权限,然后再次运行您的代码。 打开命令提示符并导航到chrome exe存在的目录并写入
chmod 777 filename
希望它能解决你的问题。