如何为Chrome构建远程Webdriver

Yul*_*lia 9 ruby selenium google-chrome webdriver

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

@driver = Selenium::WebDriver.for( :chrome )
Run Code Online (Sandbox Code Playgroud)

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

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

我收到以下错误

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);
Run Code Online (Sandbox Code Playgroud)

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

jar*_*rib 15

实际上错误消息有点错误.你不具备设置系统属性,但chromedriver可执行文件需要在远程机器上(服务器正在运行)在PATH可用.

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

java -Dwebdriver.chrome.driver=/path/to/driver -jar selenium-server-standalone.jar
Run Code Online (Sandbox Code Playgroud)