Codeception и Selenium: невозможно установить cookie - PullRequest
0 голосов
/ 08 марта 2019

Для одного из моих Selenium Cests я хочу установить cookie, но это просто не работает.Чтобы найти проблему, я сократил свой код до абсолютного минимума, и, к моему удивлению, настройка файлов cookie, похоже, не работает вообще.

 /**
 * Test if we can set simple cookies
 *
 * @param \AcceptanceTester $i
 * @throws Exception
 */
public function settingCookieSetsCookie(AcceptanceTester $i)
{
    $cookieDefaultParams = [
        'path' => '/',
        'secure' => false,
        'httpOnly' => false,
        'expiry' => 900,
        'domain' => 'www.testdomain.local'
    ];

    $i->amOnPage('/cookieCest.php');
    $i->setCookie('example', 'myvalue', $cookieDefaultParams);
    $i->amOnPage('/cookieCest.php'); // reload page
    $cookieValue = $i->grabCookie('example');
    $i->assertEquals('myvalue', $cookieValue);
}

Для целей тестирования я настроил локальный тестовый домен www.testdomain.local, который работает нормально.

К сожалению, вышеприведенный тест завершается неудачно со следующей ошибкой:

Произошел 1 сбой:


1) BackendLoginCest: Настройка cookieУстанавливает cookie Тестирование кода

$ I-> assertEquals («myvalue», null) при коде приема \ accept \ CookieCest.php: 36 $ I-> grabCookie («пример») при коде приема \ accept \ CookieCest.php:35 $ I-> amOnPage ("/ cookieCest.php") по адресу codeception \ accept \ CookieCest.php: 34 $ I-> setCookie ("пример", "myvalue",{"путь": "/", "безопасный": ложь, "httpOnly": ложь, "истечение срока действия": 900, "домен": "www.new-ep ...}) на codeception \ accept \ CookieCest.php: 33 $ I-> amOnPage ("/ cookieCest.php") при получении кода \ accept \ CookieCest.php: 32

СБОЙ! Тестов: 1, Утверждений: 1,Сбои: 1.`

Насколько я вижу, конфигурация параметров cookie-файлов выглядит хорошо (и кажется необходимой, так как ее пропуск приводит к ошибке).

Iв настоящее время я использую selenium-server-standalone-3.141.59.jar, но попробовал более старые версии, которые вызывают ту же проблему.

Ссылочный файл cookieCest.php - это всего лишь простой скрипт, var_dumps $_COOKIE, поэтому я могу видетьчто нет доступных значений cookieв PHP.

Кто-нибудь сталкивался с подобной проблемой и знает, как ее решить?

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Попробуйте этот тест с более старой версией Chrome (например, 66).Я думаю, что все, что связано с cookie, не работает с последними версиями Chrome.

0 голосов
/ 08 марта 2019

Ваш код должен работать.Решением может быть то, что страница не загружается, когда вы хотите установить cookie, поэтому она не работает там.

Также, если вы хотите проверить ваш cookie, вы можете использовать функцию seeCookie, например:

Попробуйте это решение и дайте мне знать, если оно изменилось.

$i->amOnPage('/cookieCest.php');
$i->wait(5); 
$i->setCookie('example', 'myvalue', $cookieDefaultParams);
$i->seeCookie('example');
...