1

多くのajaxがあり、自動化が必要なサイトがあります。ただし、サイトのajax部分を正しく記録できません。waitforキーワードを試しましたが、失敗しました。また、次のWebサイトhttp://www.ibm.com/developerworks/opensource/library/os-webautoselenium/index.htmlにもアクセスしましたが、コードをMyEclipseに適用する方法を理解できませんでした。

誰かがajaxアプリケーションをテストする方法についていくつかの良いチュートリアルを持っていますか?

前もって感謝します

4

2 に答える 2

2

Ajaxは少し混乱していて、Seleniumと連携しています。あなたの質問に対する簡単な答えはありませんが、いくつかのヒントがあります。

アクション/更新などを待つために、これらのループの多くを使用する必要があります。

        for (int second = 0;; second++) {
        if (second >= 60) log.error("Timeout (60 seconds) while submitting request");
        try { if (selenium.isElementPresent("elementID")) break; } catch (Exception e) {}
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

また、Ajax対応のページでは、たとえばTextBoxに入力された文字でトリガーされたイベントが何度も発生し、その後はイベントが発生しselenium.type("elementID", "12345");ません。イベントを起動typeKeys("elementID", "12345");します。

FireFoxとfirebugで、javascriptデバッガーを使用して、バックグラウンドで何が起こっているかを分析します。ChromesInspectデバッガーを使用することを好みます。開発者に相談して、特定の要素などで何がトリガーされたかを確認してください。

次に、Selenium2.0の最新バージョンを確認できます。WebドライバーはAjaxリクエストをはるかにうまく処理するはずですが、私はまだ作業する時間がありません。

つまり、自分で多くのコードを記述し、記録された部分を変更する必要があります。うまくいかない場合は、ある種のAjaxをより適切に処理する市販のコードもあります。

于 2011-01-07T09:54:42.297 に答える
0

XPathを使用している場合は、機能しません。CSSロケーターを試してください。RCでSizzle.jsロケーターを使用していますが、すべてのajax要素でうまく機能します。

IDEの場合、利用可能なプラグインを探すか、独自のプラグインを作成してuser-extensions.jsオプションを使用してプラグインすることができます。

于 2011-01-07T12:43:22.623 に答える