如何为Chrome构建远程Webdriver

我正在尝试对Chrome运行我的Selenium测试。 当我在本地初始化驱动程序时:

@driver = Selenium::WebDriver.for( :chrome ) 

一切正常(我已经将Chrome二进制文件放在我的PATH上)但是当我尝试远程启动时:

 @driver = Selenium::WebDriver.for(:remote, :url => 'http://' + SELENIUM_HOST + port + webdriver_hub, :desired_capabilities => :chrome) 

我收到以下错误

Selenium :: WebDriver :: Error :: UnhandledError:chromedriver可执行文件的路径必须由webdriver.chrome.driver系统属性设置; 有关详细信息,请参阅http://code.google.com/p/selenium/wiki/ChromeDriver 。 最新版本可以从http://code.google.com/p/chromium/downloads/list下载(java.lang.IllegalStateException)

我在那里有点困惑 – 我究竟应该如何设置这个系统属性? 我发现这段代码用Java编写:

 DesiredCapabilities caps = DesiredCapabilities.chrome(); caps.setJavascriptEnabled(true); caps.setCapability("chrome.binary", "/path/to/where/chrome/is/installed/chrome.exe"); System.setProperty("webdriver.chrome.driver","/path/to/where/you/ve/put/chromedriver.exe"); ChromeDriver driver = new ChromeDriver(caps); 

但我的测试是用Ruby编写的。 RubyBindings没有谈论这个问题http://code.google.com/p/selenium/wiki/RubyBindings

实际上错误消息有点错误。 您不必设置系统属性,但是chromedriver可执行文件需要在远程计算机(运行服务器的位置)上的PATH中可用。

如果要将路径指定为属性,则可以在启动服务器时执行此操作,例如:

 java -Dwebdriver.chrome.driver=/path/to/driver -jar selenium-server-standalone.jar 

您必须在测试代码中设置cromedriver.exe的路径。 它的东西就像

 System.setproperty(); 

在Java中

我也在使用基于Java的测试,因此我无法为您提供Ruby的确切示例。 但基本上你必须告诉你的Ruby程序chromedriver.exe的路径在哪里

好的,伙计们。 在帮助下我能找到答案。 看看这个。

这就是你在本地机器上设置驱动程序的方法:

  @driver = Selenium::WebDriver.for(:remote, :chrome :url => 'http://' + SELENIUM_HOST + port + webdriver_hub, :desired_capabilities => browser) 

哪里

 browser = ':chrome' port = ':4444' webdriver_hub = '/wd/hub' 

在运行服务器的远程计算机上会是这样的

  java -jar selenium-server-standalone-2.2.0.jar -Dwebdriver.chrome.driver="path/to/where/you/put/chromedriver.exe" 

从本地计算机运行测试后。

祝你好运!

我发现所选答案非常具有误导性。 我花了大约一个小时才发布错误。 该节点应该设置webdriver.chrome.driver属性,而不是集线器

因此,所选答案的命令应该是:

java -Dwebdriver.chrome.driver=/path/to/driver -jar selenium-server-standalone.jar -role node