0

使用 selenium-server-standalone-2.18.0.jar。在同一主机上运行集线器和节点。在单独的主机上运行客户端代码

在集线器控制台中,我可以看到其中一个节点连接了 5 个 firefox 图标。当我运行我的客户端代码时,我看到其中一个 firefox 图标被带走,就好像集线器已向连接的节点发出请求一样。我在集线器日志中看不到任何错误。我正在使用 ruby​​ + watir-webdriver 启动浏览器,如下所示:

capabilities = WebDriver::Remote::Capabilities.firefox
b=Watir::Browser.new(:remote, :url => "http://[remote-host]:4444/wd/hub", :desired_capabilities => capabilities)

我收到的错误是:

from (irb):52>> b=Watir::Browser.new(:remote, :url => "http://[remote-host]:4444/wd/hub", :desired_capabilities => capabilities)
Selenium::WebDriver::Error::UnknownError: Error forwarding the new session new session request for webdriver should contain a location header with the session. (org.openqa.grid.common.exception.GridException)
from [remote server] org.openqa.grid.web.servlet.handler.RequestHandler(RequestHandler.java):151:in `process'
from [remote server] org.openqa.grid.web.servlet.DriverServlet(DriverServlet.java):81:in `process' from [remote server] org.openqa.grid.web.servlet.DriverServlet(DriverServlet.java):67:in `doPost'
from [remote server] javax.servlet.http.HttpServlet(HttpServlet.java):727:in `service'
from [remote server] javax.servlet.http.HttpServlet(HttpServlet.java):820:in `service'
from [remote server] org.openqa.jetty.jetty.servlet.ServletHolder(ServletHolder.java):428:in `handle'from [remote server] org.openqa.jetty.jetty.servlet.WebApplicationHandler(WebApplicationHandler.java):473:in `dispatch' from [remote server] org.openqa.jetty.jetty.servlet.ServletHandler(ServletHandler.java):568:in \`handle'
from [remote server] org.openqa.jetty.http.HttpContext(HttpContext.java):1530:in `handle'
from [remote server] org.openqa.jetty.jetty.servlet.WebApplicationContext(WebApplicationContext.java):633:in `handle' from [remote server] org.openqa.jetty.http.HttpContext(HttpContext.java):1482:in `handle'
...
4

2 回答 2

0

嗨,你解决了吗?我知道你发帖已经半年了,但我想问题可能出在你的能力变量上......

这是我如何让它工作的 - 请记住,我正在使用带有 Watir-webdriver 和 Selenium Grid2 的 Cucumber:

在我的例子中,我使用了一个名为 browser_name 的 env.rb 变量。它是这样设置的:

def browser_name
  (ENV['BROWSER'] ||= 'firefox').downcase.to_sym
end

然后在 env.rb 文件中

Before do
    @browser = Watir::Browser.new(:remote, :url=>"http://[mygridhubhost]:4444/wd/hub", :desired_capabilities=> browser_name)

所以开始测试,在它运行之前它设置了带有 browser_name 的网格,在这种情况下它默认为 firefox....

无论如何,它对我有用。我也在使用 Selenium Grid 2 版本 2.31

于 2013-03-13T19:24:14.950 回答
0

Selenium Grid 在 2.21.0 中修复了很多问题。您应该尝试使用较新的 JAR 运行。

于 2012-08-26T13:47:03.253 回答