我使用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”到您想要的
能力阵列。