AJAX型操作を処理する際のwaitForPageToLoadのセレン代替

私は自分のコードでいくつかの単体テストを実行しています。このために、私はセレン・サーバーをダウンロードしなければなりませんでした。さて、セレニウムの例の1つにGoogleTestがあります。私はこれを私のC:\フォルダにコピーして、それを実行しようとしました。

最初は、Firefoxを開こうとするとエラーが発生しました。セレンは、Firefoxバージョン3.5までサポートしているので、かなりの期間更新されていないようです。見つかったこれ助けてくれた有益なブログ(3.5。*の変更。*)。

今、私には新しい問題があります。セレンはドキュメントを更新していないようですが、GoogleTestは実行時にハングします( this の投稿理由を説明します)。 AJAX型操作を使用すると、waitForPageToLoad操作がハングします。

今、私はこの操作に相当する必要がありますが、AJAX操作を扱うときは誰もが代替手段を知っていますか?ありがとう

1
その後、私は自分のセレンのバージョンをチェックすることにしました。私は最新のリリースを持っていると確信していましたが、私のversion.txtのdocはそうでないと言っていました(selenium.rc.version = 1.0.1)。私は最新のものをダウンロードしようとし、それが動作するかどうかを見てみましょう。ありがとう!
追加された 著者 Soph,
私はセレン2.0のバージョンを使用しようといくつかの問題に遭遇し、私はここに別の質問を投稿( stackoverflow.com/questions/7947773/… )でテストを実行しています。あなたがそれで私を助けることができれば、素晴らしい!
追加された 著者 Soph,
セレンのどのバージョンを使用していますか?確かに、2.0にはこの問題はありません。あなたが代替案を探しているなら、あなたはSahiをチェックアウトしましたか?
追加された 著者 Pavan,

3 答え

QAF以前のISFW で試したことがありますか?内部的には要素を待つだけでなく、dojo、extjs、prototypeなどのjsツールキットのためにajaxが待機する機能を提供します

たとえば、AUTがextjを使用する場合は、次のように使用できます。

waitService.waitForAjaxToComplete(JsToolkit.EXTJS);
2
追加された

Seleniumにはwaitforajaxtoreturn関数はありません。 AJAXの変更の処理方法は、 WebDriverWait クラスを使用して、AJAX呼び出しが復帰したときに特定の条件が真になるのを待つことです。

たとえば、Googleのテストでは、 WebDriverWait は検索コンテナが表示されるまで待つことができます。

本質的に、テストを続けるためにあなたが待っているものを知る必要があります。

0
追加された

私はいくつかのAjaxとJSの重いページをテストしています。私は全く同じ問題に直面しています。暗黙の待機を使用して、Ajaxコードが新しいコンテンツを実行してDOMにロードするのを一時停止しました。ここに私のコードからPythonのサンプルです:

from selenium import webdriver
browserHandle = webdriver.Firefox()
browserHandle.implicitly_wait(10)
## assuming dom object loads in 10 seconds
## clear implicit wait
browserHandle.implicitly_wait(0)
0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript