如何为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