我正在尝试针对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可执行需要在远程机器上(服务器正在运行)的路径可用。
如果要将路径指定为属性,则可以在启动服务器时执行此操作,例如:
java -Dwebdriver.chrome.driver=/path/to/driver -jar selenium-server-standalone.jar