Оставаться в системе (сохранять файлы cookie) WebDriver / Codeception / Selenium

Установки:

  • 1. Войти.
  • 2. Зайдите в Профиль.
  • 3. Перейдите в раздел "Бронирование".
  • 4. Просматривайте заказы, пока что-нибудь не найдете.
  • 5. Сделайте что-то еще на странице сведений о бронировании.

Проблема на 4.

При нажатии на любое бронирование он перенаправляет меня на страницу входа, даже если я вошел в систему первым.

По запросу все шаги здесь.

private function executeLogin(\AcceptanceTester $I)
{
    $I->amOnPage('/de/account/login');

    $I->fillField('#_username', 'user');
    $I->fillField('#_password', 'somepw');
    $I->click('body > div > main > div > form > div > div > button');
}


public function logIn(\AcceptanceTester $I )
{
    $I->wantTo('Log-in to My Website');

    $this->executeLogin($I);
}


public function goToBookings(\AcceptanceTester $I)
{
    $I->wantTo('Go to all my Bookings Page');

    $flyOutButton = '.nav-main__link-flyout.nav-account';
    $myBookingsButton = '/html/body/div/header/div/div/div/nav/ul/li[2]/div/div/div/ul/li[3]/a';

    $I->moveMouseOver($flyOutButton);
    $I->moveMouseOver($myBookingsButton);
    $I->click($myBookingsButton);

}

public function checkForExtra(\AcceptanceTester $I)
{
    $I->wantTo('Go through all Bookings and check if Extras are Available');

    $extrasCounter = 1;

    do{
        // $I->click('/html/body/div/main/div/div[2]/div['.$extrasCounter.']/a/div/article/div/div/div/button');
        $I->click('/html/body/div/main/div/div[2]/div['.$extrasCounter.']/a');

        //TODO Here it Redirects to the Login // Should go to the booking details Page
        $grabExtrasID = $I->grabMultiple('#add-extras-link');
        $totalExtras = count($grabExtrasID);

        $extrasCounter++;

        if ($totalExtras === 1){
            break;
        }

        codecept_debug($totalExtras);

        $I->moveBack();

    }while($totalExtras == 0);
}

$I->Click - это то место, где я выхожу из системы / перенаправляюсь на логин. И не на всю страницу с деталями бронирования.

Консольный вывод

    I click "/html/body/div/main/div/div[2]/div[1]/a/div/article/div/div/div/button"
 I grab multiple "#add-extras-link"
 I move back
  /de/account/bookings
  0
 I click "/html/body/div/main/div/div[2]/div[2]/a/div/article/div/div/div/button"
 I grab multiple "#add-extras-link"
 I move back
  /de/account/bookings
  0
 I click "/html/body/div/main/div/div[2]/div[3]/a/div/article/div/div/div/button"
 I grab multiple "#add-extras-link"
 I move back
  /de/account/bookings
  0
 I click "/html/body/div/main/div/div[2]/div[4]/a/div/article/div/div/div/button"
 I grab multiple "#add-extras-link"
 I move back
  /de/account/bookings
  0
 I click "/html/body/div/main/div/div[2]/div[5]/a/div/article/div/div/div/button"
 I grab multiple "#add-extras-link"
 I move back
  /de/account/bookings
  0

Как вы можете видеть, 0 означает, что он нашел 0 классов из того, что я искал. Есть как минимум 3 бронирования с классом. Это потому, что он даже не переходит на страницу с деталями бронирования.

Надеюсь, в этом есть смысл, дайте мне знать, если вам нужна другая информация.

Спасибо.

Любой ? Я знаю, что это довольно особенный случай.

MewTwo 09.08.2018 08:51

Добавьте код шагов 1-3 и код, который их склеивает.

Naktibalda 09.08.2018 09:22

Весь код до этого момента добавлен. Интересно то, что на самом сайте это работает. Но только автоматизированный, его просто не будет. Я не уверен, что могло вызвать проблему. Но мне действительно любопытно.

MewTwo 09.08.2018 10:27

1) Проверьте, был ли вход в систему успешным 2) Добавьте код теста к вашему вопросу 3) Выполните этот тест с флагом -vvv и поищите что-нибудь неожиданное в выводе.

Naktibalda 09.08.2018 10:42

Убедитесь, что пользователь действительно вошел в систему (например, проверьте, доступна ли кнопка выхода после отправки формы входа). У меня есть сотни тестов, требующих, чтобы актер был авторизован, и он работает нормально.

Oliver Maksimovic 17.08.2018 13:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
78
0

Другие вопросы по теме