SeleniumServerバージョン:2.5.0、Firefoxバージョン:4.0.1セレン:webdriverを持つFirefoxの:ページのロード問題
私は「新しい質問」のハイパーリンクは、Ajaxの呼び出しによってレンダリングされる状況があります。ページの読み込みが完了したら、このハイパーリンクをクリックして続行する必要があります。私はリンクが存在するまで待ってからそれをクリックするために、以下のようなものを使用しています。
while (!(driver.findElement(By.xpath("//a[text()='New Question']")).isEnabled())) {
Thread.sleep(1000);
}
driver.findElement(By.xpath("//a[text()='New Question']")).click();
これはIEの魅力のように機能します。しかし、Firefoxでは、リンクはクリックされません。
Firefoxは、IEが正しいことをしているように、ページが完全に読み込まれていないときに読み込まれていることをSeleniumに伝えているということです。
クリックが実際に起こっているかどうかを確認するには、ハイパーリンクのonclickにjavascript:alert("Hello From Chandra");
を入れます。 IEではポップアップが表示されましたが、Firefoxでは表示されませんでした。
質問:私は間違っているか不十分ですか?回避策はありますか?
ありがとうございました。 PS:詳しい情報が必要な場合はお知らせください。
WebDriverWaitを使ってみましたか? – prestomanifesto
isEnabled()の代わりにisDisplayed()を試しましたか?また、次のように試してみることもできます:while(!(driver.findElement(By.xpath( "// a [text()= '新しい質問']"))isDisplayed())){ Thread.sleep ; } –