Как ждать, пока веб-страница не будет перенаправлена ​​после нажатия кнопки другой веб-страницы в коде?

/**
* @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();
}

Эти две функции не работают для меня. Есть ли обходной путь для
дождаться загрузки перенаправленной страницы?

0

Решение

Что ты пытаешься сделать? Эти функции кажутся слишком сложными. Вы пытаетесь проверить на наличие ошибок или проверить ожидаемую страницу? Я бы попробовал сделать одно или другое. Вы знаете ожидаемый результат следующей страницы? Не могли бы вы просто сделать это:

sleep(10);
$I->see('something on the expected page');

В любом случае, я посмотрел на ваш код, и в течение 10 секунд я не мог понять, что он пытается сделать. Что для меня означает, что вам нужно повторно фактор или что-то в этом роде.

0

Другие решения

Прежде чем использовать эти методы,

/**
* @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);,
После перехода на следующую вкладку вы можете дождаться загрузки новой страницы.

0

По вопросам рекламы [email protected]