как получить текущий url-адрес из теста codeception & phantomjs?
Я создаю продукт в estore с моим тестом и должен получить url после отправки формы.
можно ли получить url в области тестирования после кнопки отправки ?
$I->click('#formSubmit');
$I->wait(5); // wait for redirect to new url
$url = $I->someFunctionToGetCurrentUrl()`
Я запускаю этот тест с консоли, а не из веб-браузера, поэтому у меня нет доступа к $_SERVER, который находится на стороне сервера.
но если у меня есть некоторые методы, такие как $I->canSeeCurrentUrlEquals()
в рамках codeception, тогда я должен каким-то образом получить доступ к текущему url-адрес...
как это сделать?
2 ответов
решением было добавить вспомогательный метод для AcceptanceHelper в _support / AcceptanceHelper.файл php:
class AcceptanceHelper extends \Codeception\Module
{
/**
* Get current url from WebDriver
* @return mixed
* @throws \Codeception\Exception\ModuleException
*/
public function getCurrentUrl()
{
return $this->getModule('WebDriver')->_getCurrentUri();
}
}
а затем использовать его в тесте:
$url = $I->getCurrentUrl();
Если у вас нет класса AcceptanceHelper/FunctionalHelper (и поэтому $this - >getModule или $this - >client не определены) , то в вашем классе AcceptanceTester/FunctionalTester должно работать следующее:
public function getCurrentUrl() {
return $this->executeJS("return location.href");
}