4

時々私のセレンテストはタイムアウトを取得しますこれらの提案:ページが読み込まれたことをセレンに認識させるにはどうすればよいですか? 私の問題を解決しませんでした。open または openAndWait を使用すると、ほとんどの場合、テストの開始時に発生します。奇妙なことに、ページは実際に開かれますが、テストは停止するだけで、それ以上実行されません。私は beta-2 バージョンと multiwindow true を使用しています。カスタムコマンドでブラウザを呼び出します。どんな提案もお待ちしています。

どうも

クク

4

3 に答える 3

1

これはIE6、IE7、IE8、FF、Chromeで機能します:

<tr>
  <td>waitForCondition</td>
  <td>
    (selenium.browserbot.getCurrentWindow().$$("body").length == 1) ? true : false;
  </td>
  <td>10000</td>
</tr>

ターゲット ウィンドウをポーリングして body 要素をチェックするだけです。ただし、タイムアウトの影響を受けやすいですが、好きなように設定できます。

注: 上記のコードでは、Prototype JS を使用して body 要素を取得しています。これは必須ではありませんが、別の JS ライブラリを使用している場合は、いくつかの変更が必要になります。

于 2010-03-12T19:07:19.540 に答える
1

私は同様の問題を抱えていました.私のものは何があってもタイムアウトします.
ページが完全にレンダリングされていることがわかりますが、何らかの理由selenium.open(relative_url)でタイムアウトになります。

タイムアウトを 120 秒程度に設定しようとしましたが、それでも同じ問題が発生します。速度を非常に遅く設定しても効果はありませんでした。

try/catch で例外を処理することで修正し、基本的に、ページが実際にレンダリングされたかどうか (魅力のように機能する) の場合は検証を続行するため、コードは次のようになります。

try {
    selenium.open(relative_url);
} catch (Exception e) {
    // check if page rendered completely here
}
// continue
于 2011-11-10T05:25:22.833 に答える
1

openAndWait の後に固定ポーズ(数秒)を入れてみましたか?私の経験から、セレンのすべての「オープン」と「クリック」(*AndWait であっても) は、次のセレン コマンドが処理される前にページがブラウザーに完全に読み込まれることを保証するものではありません。そのため、このようなコマンドの後には常に短い一時停止を追加しています。

ブラウザーでページがレンダリングされているのを確認できたとしても、その時点で Selenium のコマンド プロセッサがすべてを利用できるとは限りません。

于 2009-04-03T09:13:00.840 に答える