2

Selenium Grid 2 (ハブ用の Ubuntu ホストと Perl がインストールされ、さまざまなブラウザー (Firefox、IE、Chrome、Opera) 用の Windows ホスト) をセットアップしようとしています。すべてが正常に動作し、IE、FF、Opera に対して短いサンプル テストを開始し、ブラウザがどのように開いてページが読み込まれるかを確認できます。テストは次のとおりです。

#!/usr/bin/perl
use Selenium::Remote::Driver;
use Test::More tests=>4;

my $driver = Selenium::Remote::Driver -> new(
    'browser_name'  => 'internet explorer'
);
$driver->get("http://www.google.com");
$driver->quit();

しかし、Chrome を動作させることはできません。Windowsホストでカスタムドライバーオプションを使用してSeleniumサーバーを起動しました(これは正しいですか?)

java -jar selenium-server-standalone-2.22.0.jar -role node -hub http://my-ubuntu-host:4444/grid/register -browser "browserName=chrome,version=19" -Dwebdriver.chrome.driver="c:\selenium-2-22-0\chromedriver.exe"

そして、 Ubuntu ホストでテストを実行しようとすると、'browser_name' => 'chrome'短いエラー メッセージのみが報告されます。

caligula@my-ubuntu-host:~/www$ ./test.pl 
1..4
Could not create new session at ./test.pl line 5.
# Looks like your test exited with 255 before it could output anything.

誰かがこれを手伝ってくれますか? 多くの例がありますが、それらはすべて Java で書かれており、Perl コードに対応させることができませんでした。

また、chrome ドライバー アーカイブの名前がchromedriver_win_20.0.1133.0.zipであることに気付きました。Selenium サーバー 2.22と互換性がありますか? セレンサーバー2.20を使用しようとしましたが、FFもIEもまったく機能しませんでした。

4

1 に答える 1

3

必須パラメーター'proxy' => {HASH}がコンストラクターに渡されませんでした。例外をスローするのはchrome-driverだけですが、FFまたはIEを呼び出すと、すべて問題ありません。

コンソールに短いメッセージがありました:

org.openqa.selenium.WebDriverException: proxy must be of type dictionary, not null.
Received: null

次の方法でインスタンスを作成するSelenium::Remote::Driverと、問題が解決しました。

    my $driver = new Selenium::Remote::Driver(
        'browser_name' => 'chrome',
        'proxy' => {
            'proxyType' => 'system'
        }
    );
于 2012-06-08T18:40:34.567 に答える