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 をロードするのを待つことができるのではないかと考えました (コメント行) が、そうではありません。そのフックが処理されるまで実行が停止しているようです。
ページでjavascriptを実行するためのbehat/minkエコシステムの適切な場所はどこですか?