-2

WebページのテストにSelenium::Remote::Driverモジュールを使用していますが、

ここでajaxの応答を待つ方法を誰か教えてください。

4

2 に答える 2

2

jQuery の場合:

$driver->execute_script("return jQuery.active")

プロトタイプの場合:

$driver->execute_script("return ajax.activeRequestCount")

道場の場合:

$driver->execute_script("return dojo.io.XMLHTTPTransport.inFlight.length")

整数が返され、返された値が 0 の場合、AJAX リクエストは完了します。

$count = 0;
while ($count < 20) {
    if ($driver->execute_script("return jQuery.active") == 0) {
        last;
    }
    $count ++;
    sleep(1);
}

perl はよくわからないので、間違いがあるかもしれません。このコードは、ajax が完了するまで 20 秒待機します。

于 2012-04-30T16:33:47.113 に答える
-2

解決

長いブラウジングの後、結果は得られましたが、ajax制御ではありません...

ページに ajax 要素が表示されるのを待つなど、コードでいくつかのロジックを実行しています。これにより、問題の一部が解決されました。以下は、私が参照した URL
です。 WaitForElementPresent
IsElementPresent

これらのリンクには perl コードは含まれていませんが、Selenium::Remote::Driverモジュールのメソッドを使用してそれを行うことができます。

于 2012-05-03T14:22:18.410 に答える