5

この問題があります。別のコンピューターで HUB と NODE を起動し、次のように Google Chrome を初期化するテストを実行します。

 Selenium selenium = new DefaultSelenium("localhost", 4444, *googlechrome, "http://www.google.com");
 DesiredCapabilities capabilities = DesiredCapabilities.chrome();
 capabilities.setCapability("chrome.switches", Arrays.asList("--start-maximized"));
 WebDriver  driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);

私のコンピューターではすべて問題なく動作します。Chrome が起動し、スクリプトが実行されます。ただし、私の友人がまったく同じことをしようとすると、次のエラーが発生します。

Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_29'
Driver info: driver.version: RemoteWebDriver
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:435)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:139)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:94)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:102)
    at com.deutscheboerse.test.PerfTests.<init>(PerfTests.java:52)
    at com.deutscheboerse.test.EUAStressTest.myTest(EUAStressTest.java:37)
    at com.deutscheboerse.test.EUAStressTest.main(EUAStressTest.java:60)
Caused by: org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body (expected: 4422; received: 3743
    at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:178)
    at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:197)
    at org.apache.http.impl.io.ContentLengthInputStream.close(ContentLengthInputStream.java:105)
    at org.apache.http.conn.BasicManagedEntity.streamClosed(BasicManagedEntity.java:152)
    at org.apache.http.conn.EofSensorInputStream.checkClose(EofSensorInputStream.java:237)
    at org.apache.http.conn.EofSensorInputStream.close(EofSensorInputStream.java:186)
    at org.apache.http.util.EntityUtils.consume(EntityUtils.java:67)
    at org.openqa.selenium.remote.HttpCommandExecutor$EntityWithEncoding.<init> HttpCommandExecutor.java:399)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:287)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:415)
    ... 6 more

これまでのところ、私が見つけた唯一の違いは、彼女のハブが私のものをhttp://10.10.190.134:5555リッスンしているhttp://10.131.7.44:5555が、両方が同じ IP とポートでコンソールにアクセスできることです。何が悪いのかわからない。すべてに感謝します、ありがとう

** 編集 **

別のコンピューターで実行しようとしたところ、同じエラーが発生しました。少しデバッグすると、次のメッセージが表示されました。

11:04:01.899 WARN - Exception: The path to the chromedriver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://code.google.com/p/chromedriver/downloads/list

したがって、Selenium Grid で Chrome をセットアップする前に、次のことを行う必要があります。

System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, "chromedriver.exe");

私はそれをやろうとしましたが、まだChromeを実行できません...助けが必要です

EDID2 これは、プロパティを正確に設定する方法です。

File file = new File("lib/chromedriver.exe");
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, file.getAbsolutePath());

より多くのコンピューターで実行する必要があり、JAR ファイルの場所が異なる可能性があるため、このアプローチを使用しています。

ところで、ロール ノードに Selenium Grid があるウィンドウに警告が表示されます。他にスイッチャーがあればと考えています。これまでのところ、次のコマンドを実行しています。

java -jar lib//selenium-server-standalone-2.20.0.jar -role hub
java -jar lib/selenium-server-standalone-2.20.0.jar -role node  -hub http://localhost:4444/grid/register -maxSession 12

and then my JAR. The exception is in window with the NODE. Is there any switcher?
4

2 に答える 2

12

1日検索した後、解決策が見つかりました。ノードをどのように起動するかがすべてです。最初に、通常の手順を実行します。

java -jar lib/selenium-server-standalone-2.20.0.jar -role hub

次に、次のようにノードを開始します。

java -jar lib/selenium-server-standalone-2.20.0.jar -role webdriver -hub http://localhost:4444/grid/register -browser browserName="chrome",version=ANY,platform=WINDOWS,maxInstances=5 -Dwebdriver.chrome.driver=lib\chromedriver.exe 

より具体的には、パラメーターを使用して NODE を起動し、ChromeDriver へのフル パスを指定するパラメーターbrowserを追加する必要があります。-D

SO で Internet Explorer に関する同様の質問に答えてくれた John Naegle に心から感謝します。

于 2012-04-05T07:41:06.307 に答える
1

それはおかしいですが、webdriver は dns を解決できませんhttp://localhost:4444/ 。ホスト ファイルを編集し、コメントを外した行:

127.0.0.1 ローカルホスト

そして、それは行われました。

于 2013-03-08T09:44:03.647 に答える