每当用户点击Selenium IDE中的播放按钮时,我都想触发一个Ajax调用。 jQuery $ .ajax函数会更好。有没有办法做到这一点?
在网上搜索20分钟后,我没有找到任何人试图这样做。
答案 0 :(得分:2)
您可以使用其中一个评估JavaScript代码的Selenium命令。例如,waitForCondition
命令执行JavaScript代码段,直到最后一个表达式的计算结果为真。请注意,如果您的测试页已经有jQuery,则可以跳过前两部分。
(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
<!--Inject jQuery-->
<tr>
<td>waitForCondition</td>
<td>(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;</td>
<td>1000</td>
</tr>
typeof selenium.browserbot.getUserWindow().jQuery == 'function'
<!--Validate jQuery-->
<tr>
<td>waitForCondition</td>
<td>typeof selenium.browserbot.getUserWindow().jQuery == 'function'</td>
<td>60000</td>
</tr>
(function(window) {
window.jQuery.ajax('http://www.google.co.uk/search?q=jquery');
})(selenium.browserbot.getUserWindow());
1 == 1;
<!--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>