これが私がすることです:
selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);
// do something, then navigate to a different page
// (window focus is never changed in-between)
selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);
リンク「mylink」は存在し、click() の最初の呼び出しは常に機能します。しかし、2 番目の click() は機能しているように見えることもあれば、そうでないこともあります。
ページの読み込みが開始されていないため、click() イベントがまったくトリガーされていないようです。残念ながら、この動作は過小評価的です。
これが私がすでに試したことです:
より長い時間のタイムアウトを設定
=> 役に立たなかった1つのページをロードした後に要素が存在するのを待つ
=>ページのロードが開始されないため、どちらも機能しません
今のところ、最終的に click() を 2 回呼び出すことになったので、次のようにします。
selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);
// do something, then navigate to a different page
// (window focus is never changed in-between)
selenium.click("link=mylink");
selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);
それはうまくいきますが、それは本当に良い解決策ではありません。私は別のフォーラムで、誰かが「clickAndWaitWithRetry」のようなものを書くことを提案したことも見ました:
try {
super.click("link=mylink");
super.waitForPageToLoad(60000);
}
catch (SeleniumException e) {
super.click("link=mylink");
super.waitForPageToLoad(60000);
}
しかし、それも適切な解決策ではないと思います.... click() イベントが時々トリガーされない理由はありますか?