2011-01-07 11 views
1

私はajaxをたくさん持ち、オートメーションが必要なサイトを持っています。しかし、サイトのAjax部分を正しく記録できません。私はwaitforキーワードを試して失敗しました。私はまた、次のウェブサイトhttp://www.ibm.com/developerworks/opensource/library/os-webautoselenium/index.htmlに行ったが、MyEclipseにコードを適用する方法を説明することができなかった。Seleniumを使ってajaxベースのサイトを記録する方法

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

おかげ

答えて

2

アヤックスは混乱のビットであると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デバッガを使用してバックグラウンドで何が起こっているのかを分析します。私はChromes Inspectデバッガを使いたいと思う。あなたの開発者と話をして、特定の要素などのために何が引き起こされたのかを調べてください。

2番目に、最新バージョンのSelenium 2.0を見ることができます。 WebドライバはAjaxリクエストをもっとうまく処理するはずですが、まだ作業する時間はありません。

要するに、あなた自身で多くのコードを書いて、記録された部分を修正する必要があります。もし何かの商業的なものがうまく動作しない場合、Ajaxのいくつかのタイプをより良く処理します。

0

XPathを使用している場合は動作しません。 CSSロケータを試してみてください。 RCでSizzle.jsロケータを使用しています。すべてのAjax要素でうまく動作します。

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

関連する問題