2016-08-09 1 views
1

Используя PHP-код и WebDriver PHP wrapper (Facebook), можно ли вообще получить переменные окружения реального запроса страницы, сделанные PhantomJS или используемым реальным браузером?Получите полный URL-адрес запроса из модуля WebDriver в Codeception

Возможно, это просто мое непонимание технологии приемочных испытаний, но с учетом того факта, что платформа тестирования, такая как Codeception, запрашивает страницу с использованием PhantomJS или реального браузера, такого как Chrome или Firefox, я ожидаю, что у вас будет доступ к, например, глобальную переменную $ _SERVER. К сожалению, я не могу найти какие-либо методы, обеспечивающие это в модуле CodeWriver WebRriver или обложке PHP PHP WebDriver.

В частности, у меня есть страница, на которой предполагается использовать только SSL, поэтому при переходе на страницу ожидается 301 переадресация. Мне нужно иметь приемочный тест в Codeception, чтобы проверить это и проверить глобальную переменную $ _SERVER ['HTTPS'].

Сначала я попытался сопоставить URL с 'https: //', но метод оболочки WebDriver _getCurrentUrl() предоставляет только часть URI без протокола и хоста.

Затем я попытался получить переменную $ _SERVER внутри пользовательского действия Helper, но тот, к которому обращается напрямую, выглядит так, как будто он приходит из среды CLI, а не из запроса браузера.

ответ

1

Нет, вы не можете получить доступ к $ _SERVER при приемочных испытаниях, потому что $ _SERVER находится на стороне сервера, и все, что у вас есть, является клиентом.

Если вы хотите проверить полный URL-адрес, вы можете использовать метод экземпляра webdriver, к нему можно получить доступ так же, как метод _getCurrentUri в вашем помощнике.

public function checkUrl() 
{ 
    $url = $this->getModule('WebDriver')->webDriver->getCurrentURL(); 
    //do your checks here 
} 
+0

Спасибо, совершенный в настоящее время работает. Я получаю полный URL-адрес и могу использовать '$ this-> assertRegExp ('/ https: \/\/(. *) /', $ Url);' для обнаружения SSL. –

2

Если уже используется WebDriver модуль:

$currentUrl = $I->executeJS('return jQuery(location).attr("href");');

Смежные вопросы