我正在使用Selenium::Remote::Driver模块来测试网页,
谁能告诉我如何在这里等待ajax响应。
对于 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,所以可能会有一些错误。此代码将等待 20 秒以完成 ajax。
经过长时间的浏览,我得到了结果,但不是在 ajax 控制中......
我在代码中做一些逻辑,比如等待 ajax 元素出现在页面中,这解决了我的一些问题。以下是我提到的网址
WaitForElementPresent
IsElementPresent
这些链接不包含 perl 代码,但我可以使用Selenium::Remote::Driver模块中的方法来做到这一点。