/**
* @param int $timeout : timeout period
* @throws ModuleException
*/
public function waitAjaxLoad($timeout = 10)
{
$this->webDriverModule->waitForJS('return !!window.jQuery && window.jQuery.active == 0;', $timeout);
$this->webDriverModule->wait(1);
$this->dontSeeJsError();
}
/**
* @param int $timeout : timeout period
* @throws ModuleException
*/
public function waitPageLoad($timeout = 10)
{
$this->webDriverModule->waitForJs('return document.readyState == "complete"', $timeout);
$this->waitAjaxLoad($timeout);
$this->dontSeeJsError();
}
Эти две функции не работают для меня. Есть ли обходной путь для
дождаться загрузки перенаправленной страницы?
Что ты пытаешься сделать? Эти функции кажутся слишком сложными. Вы пытаетесь проверить на наличие ошибок или проверить ожидаемую страницу? Я бы попробовал сделать одно или другое. Вы знаете ожидаемый результат следующей страницы? Не могли бы вы просто сделать это:
sleep(10);
$I->see('something on the expected page');
В любом случае, я посмотрел на ваш код, и в течение 10 секунд я не мог понять, что он пытается сделать. Что для меня означает, что вам нужно повторно фактор или что-то в этом роде.
Прежде чем использовать эти методы,
/**
* @param int $timeout : timeout period
* @throws ModuleException
*/
public function waitAjaxLoad($timeout = 10)
{
$this->webDriverModule->waitForJS('return !!window.jQuery && window.jQuery.active == 0;', $timeout);
$this->webDriverModule->wait(1);
$this->dontSeeJsError();
}
/**
* @param int $timeout : timeout period
* @throws ModuleException
*/
public function waitPageLoad($timeout = 10)
{
$this->webDriverModule->waitForJs('return document.readyState == "complete"', $timeout);
$this->waitAjaxLoad($timeout);
$this->dontSeeJsError();
}
Я должен был призвать $this->switchToNextTab(1);
перейти к следующей вкладке в браузере.
Когда ваш тестовый пример нажимает на кнопку «Отправить» и он переходит на другую страницу с новой вкладкой браузера, вы должны переключить ToNextTab, вызвав $this->switchToNextTab(1);
,
После перехода на следующую вкладку вы можете дождаться загрузки новой страницы.