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]. Не удалось утверждать, что ложь - это правда.
Скриншот:
Что я делаю неправильно?
1 ответ
Я только что столкнулся с той же проблемой, я предполагаю, что ее просто нет, когда утверждение проверяется, но затем появляется к моменту создания снимка экрана.
Вместо добавления 1-секундной задержки вы также можете использовать
->waitForText()
что избавит от лишнего времени ожидания.
Я нашел обходной путь. Я добавил паузу в 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');
});