0

document.body にアクセスできませんでした。この HTML ページは完全に読み込まれていますか? これは、 Selenium RC で発生するエラーです。私は testNG フレームワークに取り組んでおり、Eclipse の Java でテスト スクリプトを記述しています。Selenium RC を使用してテスト スクリプトを実行しています。これは、編集ウィンドウの保存ボタンをクリックした後に発生するエラーです。保存をクリックしてから次の呼び出しまでの間に Thread.sleep("1000") を使用しましたが、私のコードは次のようになります

            selenium.click(saveButton);     
            Thread.sleep(sleep);      
            while(selenium.isTextPresent("Processing ...")) 
            Thread.sleep(sleep);

while(selenium.isTextPresent("Processing ...")) 行でエラーが発生しています。

4

3 に答える 3

1

あなたの後、適切な長さではないかもしれない時間のselenium.click(saveButton)代わりに、あなたはすべきです.Thread.sleep(sleep)selenium.waitForPageToLoad(...)

于 2012-08-28T15:17:57.753 に答える
0

別の待機ステートメントを試すことができます。waitForTestPresent、WaitForElementPresent。このようにして、セレンはどれだけ待つべきか、何を待つべきかを知っています。clickAndWait も使用できます。

于 2012-09-05T05:11:22.057 に答える
0

実際、私は同様の問題を抱えており、Selenium ユーザー グループのフォーラムでいくつかの検索を行った後、Ajax 呼び出しが原因であると判断した後、AJAX ページの読み込みに時間がかかりますが、Selenium は前の呼び出しが完了するのを待たずに次のコマンドに移動しようとしています。selenium.waitForPageToLoad(10000)Ajax を待機しません。最初に、Ajax 呼び出しの後、テキストをチェックする直前に、コマンド間でスピード バンパーを試します。しかし、セレン テストhttp://zurmo.org/wiki/seleniumに関するこのブログ投稿を読んだ後、selenium.waitForCondition() メソッドを追加して、jQuery の読み込みを待機することにしました。私は今この構造を使用しています:

        selenium.waitForPageToLoad(10000);
        selenium.waitForCondition("typeof selenium.browserbot.getCurrentWindow().jQuery == 'function'", "10000");
        Thread.sleep(1000L);
        Assert.assertTrue("Warning Message", selenium.isTextPresent("elementText"));

ブログ投稿の提案

  1. すべてのテストを FireFox IDE で作成し、最初に FireFox IDE で正常に実行することに集中してください。
  2. 最初の目的は FireFox の安定したテスト スイートであるため、Chrome/IE について心配する必要はありません。3つのブラウザで動作するよりも、1つのブラウザで完全に安定していることが重要です
  3. すべてのテストを高速で動作するように記述します。当初、Selenium は扱いにくいため、SLOW 速度で実行するにはすべてを作成する必要があると考えていました。これは実際に問題を引き起こすため、テストを高速で実行してください。これまでのところ、複数の回線で一時的に速度を落とす必要があるスポットは 1 つしか見つかりませんでした。それについては少し触れます。ページ全体をロードするアクションを実行するときはいつでも、次のパターンに従う必要があります。

URL に直接アクセスするためのパターン

  • 開く – myURL

  • waitForPageToLoad

  • waitForCondition – selenium.browserbot.getCurrentWindow().jQuery.active == 0(ここで "typeof selenium.browserbot.getCurrentWindow().jQuery == 'function'" に変更します。これはうまく機能しています。 )

しかし、ブログ記事を読むことを強くお勧めします。

于 2014-02-11T13:20:30.707 に答える