Laravel Dusk 无法断言看到屏幕截图中可见的文本(使用 whenAvailable 作为模态)
Laravel Dusk fails to assert seeing a text which is visible in the screenshot (using whenAvailable for modal)
我写了一个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');
});
我收到以下消息:
There was 1 failure:
1) Tests\Browser\RegistrationTest::testRegistration Did not see
expected text [Payment] within element [body #modal-payment-info].
Failed asserting that false is true.
截图:
我做错了什么?
我有一个解决方法。我添加了 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');
});
我刚遇到同样的问题,我假设它在测试断言时根本不存在,但在截取屏幕截图时出现了。
除了添加 1 秒延迟,您还可以使用 ->waitForText()
,这将消除大部分不必要的等待时间。
我写了一个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');
});
我收到以下消息:
There was 1 failure:
1) Tests\Browser\RegistrationTest::testRegistration Did not see expected text [Payment] within element [body #modal-payment-info]. Failed asserting that false is true.
截图:
我做错了什么?
我有一个解决方法。我添加了 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');
});
我刚遇到同样的问题,我假设它在测试断言时根本不存在,但在截取屏幕截图时出现了。
除了添加 1 秒延迟,您还可以使用 ->waitForText()
,这将消除大部分不必要的等待时间。