Laravel Dusk не может утверждать, что видит текст, который виден на скриншоте (используя whenAvailable для модального окна)

Я написал тест Laravel Dusk. Я пытаюсь утверждать, виден ли какой-то текст после открытия модального окна. Итак, я использую метод whenAvailable. Но это не удается, пока я вижу текст на скриншоте.

$browser->press('@finish-setup-button')
        ->whenAvailable('#modal-payment-info', function ($modal) use($paymentInfo) {
            $modal->assertSee(html_entity_decode(__('account_setup.payment')))
                  ->type('name', $paymentInfo->name)
                  ->type('iban', $paymentInfo->iban)
                  ->type('bic', $paymentInfo->bic)
                  ->press('@subscribe-button');
        });

Я получаю следующее сообщение:

Был 1 сбой:

1) Tests\Browser\RegistrationTest::testRegistration Не увидел ожидаемый текст [Payment] в элементе [body #modal-payment-info]. Не удалось утверждать, что ложь является правдой.

Снимок экрана:

введите здесь описание изображения

Что я делаю не так?


person Debiprasad    schedule 30.10.2018    source источник


Ответы (2)


У меня есть обходной путь. Я добавил паузу в 1 секунду, и все работает нормально.

$browser->press('@finish-setup-button')
        ->whenAvailable('#modal-payment-info', function ($modal) use($paymentInfo) {
            $modal->pause(1000)
                  ->assertSee(html_entity_decode(__('account_setup.payment')))
                  ->type('name', $paymentInfo->name)
                  ->type('iban', $paymentInfo->iban)
                  ->type('bic', $paymentInfo->bic)
                  ->press('@subscribe-button');
        });
person Debiprasad    schedule 30.10.2018

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

Вместо того, чтобы добавлять 1-секундную задержку, вы также можете использовать ->waitForText(), что уберет самое ненужное время ожидания.

person James Anelay    schedule 17.11.2020