2

あるマシンにセレン ハブを配置し、別のコンピューターにセレン ノードと同じ方法でハブに接続する phantomjs のインスタンスを配置することは可能ですか?

同じマシンで selenum ハブと phantomjs のインスタンスを起動すると、テストを正常に実行できます。

Selenium ハブを起動し、別のマシンで Selenium ノードを起動して、firefox でテストを実行すると、テストは正常に実行されます。

セレン ハブと phantomjs のインスタンスを別のマシンで起動すると、phantomjs はハブに正常に接続しますが、ハブがテストを送信しようとすると接続を拒否します。

私が見つけた Selenium ハブに接続する phantomjs インスタンスのすべての例は、ハブと同じマシンで実行されている phantomjs インスタンスを常に示しています。

基本的な環境情報###:

  • 両方のマシンで debian jessie を実行しています
  • セレン-サーバー-スタンドアロン-2.39.0.jar
  • phantomjs のバージョンは 1.9.7 です
  • pythonと鼻を使う

シナリオと起動コマンド###:

同じマシン上のハブとphantomjs はテストを正常に実行します

java -jar selenium-server-standalone-2.39.0.jar -role hub -timeout=50 -browserTimeout=60 -ensureCleanSession
phantomjs --webdriver=8080 --webdriver-selenium-grid-hub=http://localhost:4444

別のマシン上のハブとノードは 、Firefox でテストを正常に実行します

java -jar selenium-server-standalone-2.39.0.jar -role hub -timeout=50 -browserTimeout=60 -ensureCleanSession
java -jar selenium-server-standalone-2.39.0.jar -role node -hub http://10.3.1.120:4444/grid/register -port 8080 -maxSessions=1

異なるマシン上のハブとファントム js が テストの実行に失敗する

java -jar selenium-server-standalone-2.39.0.jar -role hub -timeout=50 -browserTimeout=60 -ensureCleanSession
phantomjs --webdriver=8080 --webdriver-selenium-grid-hub=http://10.3.1.120:4444
  • サーバー出力

    Mar 10, 2014 12:19:57 PM org.openqa.grid.selenium.proxy.DefaultRemoteProxy isAlive
    WARNING: Failed to check status of node: Connection refused
    
  • ファントムjsの出力

    PhantomJS is launching GhostDriver...
    [INFO  - 2014-03-10T16:15:46.149Z] GhostDriver - Main - running on port 8080
    [INFO  - 2014-03-10T16:15:46.150Z] GhostDriver - Main - registering to Selenium HUB 'http://10.3.1.120:4444' using '127.0.0.1:8080'
    [INFO  - 2014-03-10T16:15:46.198Z] HUB Register - register - Registered with grid hub: http://10.3.1.120:4444/ (ok)
    
4

1 に答える 1

1

ポート番号とともに webdriver パラメータの IP アドレスを追加します。これは問題の解決に役立ちます。元 -

phantomjs --webdriver-selenium-grid-hub=http://<Remote_IP_Of_Grid_Hub>:4444 --webdriver=<IP_Of_The_Local_Node>:9301

基本的に、「--webdriver」パラメーターに IP が指定されていない場合、ノード値は localhost として送信されます。次に、ハブは localhost ポート 9301 でリクエストを探します。ハブでポート 9301 が開いていないため、最終的に接続が切断され、エラーが表示されます。

于 2014-04-01T02:07:19.627 に答える