Selenium2でIE6をテストする際にこの問題があります。私は Perl バインディング ( Selenium::Remote::Driver ) を使用していますが、Selenium for Java などの経験がある人からのものであっても、どんな提案でも大歓迎です。
問題は、私がこれをやろうとすると:
my %opt = (
browser_name => 'internet explorer',
version => '6',
platform => 'WINDOWS',
proxy => {
proxyType => 'direct',
}
);
my $driver = Selenium::Remote::Driver->new(%opt);
$driver->get('http://www.google.com');
my $elem = $driver->find_element('gs_htif0', 'id');
$elem->send_keys('fooooooo');
ブラウザーは開きますが、テストはメッセージAn element could not be located on the page using the given search parameters: gs_htif0,id at ...
で終了しますが、IE7 ではすべて正常に動作し、IE ドライバーのドキュメントには IE6 がテスト済みであると記載されています。
その後、ノードを で起動しようとしました"seleniumProtocol": "Selenium"
。これは、ドライバーのないブラウザーをテストするためのオプションだと思ったので、ユーザーアクションの「JavaScript エミュレーション」の古い方法でテストできましたが、ブラウザーはそうしませんでした。まったく開始し、メッセージでテストが終了しましたjava.lang.NullPointerException: sessionId should not be null; has this session been started yet?
私のハブ構成は次のとおりです。
{
"host": null,
"port": 4444,
"newSessionWaitTimeout": -1,
"servlets" : [],
"prioritizer": null,
"capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"throwOnCapabilityNotPresent": true,
"nodePolling": 5000,
"cleanUpCycle": 5000,
"timeout": 300000,
"browserTimeout": 0,
"maxSession": 5
}
私のノード構成は次のとおりです。
{
"capabilities":
[
{
"platform": "WINDOWS",
"browserName": "internet explorer",
"version": "6",
"seleniumProtocol": "WebDriver",
"ensureCleanSession": true
}
],
"configuration":
{
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"maxSession": 1,
"port": 5555,
"host": "192.168.1.6",
"register": true,
"registerCycle": 5000,
"hubPort": 4444,
"hubHost": "192.168.1.34"
}
}
ノード起動コマンドはjava -jar selenium-server-standalone-2.29.0.jar -role node -nodeConfig node_ie6_conf.json -Dwebdriver.ie.driver="IEDriverServer_2.29x32.exe" > nul
ハブの起動コマンドはjava -jar selenium-server-standalone-2.29.0.jar -role hub -hubConfig hub_conf.json &> dev/null
誰でもこれで私を助けることができますか? 私の感謝。
更新 私の質問の 2 番目の部分では、Selenium::Remote::Driver は webDriver プロトコルでのみ動作すると思いますが、よくわかりません