0

selenium-server-standalone-2.18.0.jarを使用します。同じホストでハブとノードを実行します。別のホストでクライアントコードを実行する

ハブコンソールでは、ノードの1つが5つのFirefoxアイコンに接続されていることがわかります。クライアントコードを実行すると、ハブが接続されたノードにリクエストを送信したかのように、Firefoxアイコンの1つが削除されていることがわかります。ハブログにエラーは表示されません。私は次のように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とSeleniumGrid2で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...になります。

とにかく、それは私のために働きます。SeleniumGrid2バージョン2.31も使用しています

于 2013-03-13T19:24:14.950 に答える
0

Selenium Grid には、2.21.0 の時点で多くの問題が修正されています。新しい JAR で実行してみてください。

于 2012-08-26T13:47:03.253 に答える