Я хочу выполнить некоторый javascript на странице в хуке @BeforeStep, который зависит от jQuery. Однако 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 на странице?