我想在依赖于 jQuery 的 @BeforeStep 钩子中的页面上执行一些 javascript。但是当时没有定义jQuery,实际上页面是空白的。
这是我想要实现的目标:
/**
* @BeforeStep @javascript
*/
public function registerAjaxEventHandlers()
{
$javascript = <<<JS
window.jQuery(document).ready(function () {
if (window.__ajaxStatus !== undefined) {
return;
}
window.__ajaxStatus = 'none';
$('body').ajaxStop(function() {
window.__ajaxStatus = 'idle';
});
$('body').ajaxStart(function() {
window.__ajaxStatus = 'in-flight';
});
});
JS;
//$this->getSession()->wait(5000, 'window.jQuery !== undefined');
$this->getSession()->executeScript($javascript);
}
我想也许我可以等待页面首先加载 jQuery(注释行),但事实并非如此。似乎在处理该钩子之前执行已停止。
在 behat/mink 生态系统中,在页面上执行 javascript 的正确位置是什么?