使用 RemoteWebdriver 的 chromedriver 出错
Posted
技术标签:
【中文标题】使用 RemoteWebdriver 的 chromedriver 出错【英文标题】:getting error with chromedriver using RemoteWebdriver 【发布时间】:2015-01-16 17:54:16 【问题描述】:得到错误:
配置失败:@BeforeMethod 设置 org.openqa.selenium.WebDriverException:驱动程序的路径 可执行文件必须由 webdriver.chrome.driver 系统属性设置; 有关详细信息,请参阅 http://code.google.com/p/selenium/wiki/ChromeDriver。最新的 版本可以从 http://chromedriver.storage.googleapis.com/index.html
我的代码:
capability = DesiredCapabilities.chrome();
capability.setBrowserName("chrome");
capability.setVersion("38.0.2125.122 m");
String strChromePath = System.getProperty("user.dir")
+ "\\webdrivers\\chromedriver.exe";
System.setProperty("webdriver.chrome.driver", strChromePath);
capability.setPlatform(org.openqa.selenium.Platform.ANY);
return new RemoteWebDriver(new URL("http://192.168.1.77:5555/wd/hub"),
capability);
在上面的代码 chromedriver 中,它自己没有被调用。
然后我尝试了代码:
ChromeDriverService chromeService = new ChromeDriverService.Builder()
.usingDriverExecutable(new File("webdrivers/chromedriver.exe"))
.usingAnyFreePort().build();
chromeService.start();
capability = DesiredCapabilities.chrome();
capability.setBrowserName("chrome");
capability.setVersion("38.0.2125.122 m");
capability.setPlatform(org.openqa.selenium.Platform.ANY);
return new RemoteWebDriver(new URL("http://192.168.1.77:5555/wd/hub"),
capability);
在执行上述代码时,可执行文件会启动,但不会调用 chrome。它会引发相同的错误。代码在 Firefox 上运行良好。请问有什么帮助吗?
【问题讨论】:
【参考方案1】:根据您的系统(32位/64位)下载相关的Chrome驱动程序from here。尝试先设置 ChromeDriver 的属性,如下所示:
File file = new File("D:\\chromedriver.exe"); //path to the chromedriver.exe so downloaded
System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
然后使用这个代码:-
DesiredCapabilities capability = DesiredCapabilities.chrome();
capability.setBrowserName("chrome");
capability.setVersion("38.0.2125.122 m");
WebDriver driver = new RemoteWebDriver(new URL("http://192.168.1.77:5555/wd/hub"),capability);
如果不需要使用“RemoteWebDriver”,你可以直接使用下面的代码:
File file = new File("D:\\chromedriver.exe"); //path to the chromedriver.exe so downloaded
System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
WebDriver driver = new ChromeDriver();
【讨论】:
还是同样的问题。我是第一次使用远程 webdriver,所以我想我正在以正确的方式进行操作。我遵循的步骤是 - 启动集线器 启动节点,然后执行测试。 希望此链接有所帮助。 blog.varunin.com/2011/10/…【参考方案2】:试试下面:
WebDriver driver;
System.setProperty("webdriver.chrome.driver", "properties/chromedriver.exe");
driver = new ChromeDriver();
driver.get("www.google.com");
将chrome驱动放到properties文件夹中。
【讨论】:
以上是关于使用 RemoteWebdriver 的 chromedriver 出错的主要内容,如果未能解决你的问题,请参考以下文章
Selenium:browsermob 可以在 RemoteWebDriver 上运行吗?
如何使用Selenium RemoteWebDriver删除下载的文件?
有没有办法使用 RemoteWebDriver for SauceLabs 禁用 CORS 检查
Selenium-Grid2 配置RemoteWebDriver