只是想检查 ajax 是否不再执行,但是这方面的文档并不多。
我找到的最接近的答案是:php webdriver selenium 等待ajax https://stackoverflow.com/questions/45597877/phpwebdriver-selenium-wait-for-ajax/48211708#48211708
我尝试调整以下答案中的代码:
public function waitForAjaxComplete()
{
$wait = new WebDriverWait($driver, 30);
$wait->until(function(){
$condition = 'arguments[0].call(null, $.active == 0)';
if($driver->executeAsyncScript(array(
'script' => $condition,
'args' => array()
))
)
return true;
}, 10000);
}
但它返回以下内容:
PHP Fatal error: Uncaught Facebook\WebDriver\Exception\UnknownServerException: java.util.HashMap cannot be cast to java.lang.String in vendor/facebook/webdriver/lib/Exception/WebDriverException.php:114
我尝试过的变体$条件,但它不断返回相同的东西。当然其他人会发现这个解决方案很有用,因为它有助于确定页面容器何时完成通过 Ajax 重新加载新内容,或者只是能够确认 javascript 何时停止使用 php webdriver 在页面上执行
如果您使用 jQuery 执行 AJAX 请求,则可以使用以下命令:
$driver->wait()->until(
function ($driver) {
return $driver->executeScript('return jQuery.active === 0;');
}
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)