我使用selenium网格和用ruby/watir/cucumber编写的测试通过并行化来加速。我的网格中有一些节点想在工作日使用,有些节点只想在夜间使用。我认为可以通过使用applicationname功能来实现。
现在我的代码看起来像这样:

@driver= FigNewton.browser
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 360
@env = ENV['ENV']
@env ||= 'local'
if @env == 'local' then
  @browser = Watir::Browser.new @driver , :http_client => client
else
  @hub_url = ENV['HUB_URL']
  @hub_url ||= 'http://localhost:4444/wd/hub'
  @browser = Watir::Browser.new(:remote, :url=>"http://localhost:4444/wd/hub", :desired_capabilities => @driver.downcase.to_sym)
end

但当我以这种方式设置功能时,无法更改applicationname。
所以我试着使用下一个代码:
@driver= FigNewton.browser
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 360
@env = ENV['ENV']
@env ||= 'local'
if @env == 'local' then
  @browser = Watir::Browser.new @driver , :http_client => client
else
  @hub_url = ENV['HUB_URL']
  @hub_url ||= 'http://localhost:4444/wd/hub'
  caps = Selenium::WebDriver::Remote::Capabilities.firefox
  caps[:applicationName] = "test"
  @browser = Watir::Browser.new(:remote, :url=>"http://localhost:4444/wd/hub", :desired_capabilities => caps)
end

下一个命令将启动我的节点:
 java -jar selenium-server-standalone-2.44.0.jar -role node -host testHost  -hub http://localhost:4444/grid/register -maxSession 20 -browser browserName=firefox,maxInstances=10 -browser browserName=chrome,maxInstances=10,applicationName=test

但当我使用第二种方法时,我有了下一个例外:
Error forwarding the new session cannot find : Capabilities [{platform=ANY, cssSelectorsEnabled=true, javascriptEnabled=true, browserName=firefox, applicationName=test, nativeEvents=false, rotatable=false, takesScreenshot=true, version=}] (org.openqa.grid.common.exception.GridException) (Selenium::WebDriver::Error::UnknownError)

不知道怎么了。
有没有其他方法过滤网格中的节点?

最佳答案

找到了,希望有帮助
节点1:

java -jar selenium-server-standalone-2.20.0.jar -role node -hub http://HUB_IP:4444/grid/register -browser browserName=firefox,version=11,maxInstances=1,platform=WINDOWS,applicationName=windows7_32bits_firefox_11

节点2:
java -jar selenium-server-standalone-2.20.0.jar -role node -hub http://HUB_IP:4444/grid/register -browser browserName=firefox,version=11,maxInstances=1,platform=WINDOWS,applicationName=windows7_64bits_firefox_11

在你的测试中你必须添加
“applicationName=windows7_32bits_firefox_11”到您想要的
能力阵列。

10-08 04:38