1

ユーザーが Selenium IDE の再生ボタンをクリックするたびに Ajax 呼び出しを開始したいと考えています。jQuery の $.ajax 関数はさらに優れています。これを行う方法はありますか?

オンラインで20分間検索した後、これをやろうとしている人は見つかりませんでした.

4

1 に答える 1

2

JavaScript コードを評価する Selenium コマンドの 1 つを使用できます。たとえば、このwaitForConditionコマンドは、最後の式の評価が true になるまで JavaScript スニペットを実行します。テスト ページに既に jQuery がある場合は、最初の 2 つの部分をスキップできます。

jQuery ライブラリをページにロードする

JavaScript スニペット

(function(window) {
    var script = window.document.createElement("script");
    script.src = "http://code.jquery.com/jquery-1.9.1.min.js";
    script.type = "text/javascript";
    window.document.getElementsByTagName("head")[0].appendChild(script);
})(selenium.browserbot.getUserWindow());
1 == 1; // put something that evaluates to "true" here to make sure that our code runs only once

Selenium コマンド

<!--Inject jQuery-->
<tr>
    <td>waitForCondition</td>
    <td>(function(window) { var script = window.document.createElement(&quot;script&quot;); script.src = &quot;http://code.jquery.com/jquery-1.9.1.min.js&quot;; script.type = &quot;text/javascript&quot;; window.document.getElementsByTagName(&quot;head&quot;)[0].appendChild(script); })(selenium.browserbot.getUserWindow()); 1==1;</td>
    <td>1000</td>
</tr>

jQuery がダウンロードされ、使用できる状態になっていることを確認する

JavaScript スニペット

typeof selenium.browserbot.getUserWindow().jQuery == 'function'

Selenium コマンド

<!--Validate jQuery-->
<tr>
    <td>waitForCondition</td>
    <td>typeof selenium.browserbot.getUserWindow().jQuery == 'function'</td>
    <td>60000</td>
</tr>

ajax 呼び出しを行う

JavaScript スニペット

(function(window) {
    window.jQuery.ajax('http://www.google.co.uk/search?q=jquery');
})(selenium.browserbot.getUserWindow());
1 == 1;

Selenium コマンド

<!--Make an AJAX call-->
<tr>
    <td>waitForCondition</td>
    <td>(function(window) {window.jQuery.ajax('http://www.google.co.uk/search?q=jquery'); })(selenium.browserbot.getUserWindow()); 1 == 1;</td>
    <td>1000</td>
</tr>
于 2013-05-10T12:11:17.757 に答える