Laravel Dusk无法断言看到屏幕截图中可见的文本(使用whenAvailable for modal)

时间:2018-10-30 07:48:51

标签: laravel laravel-dusk browser-testing

我写了Laravel Dusk测试。我试图断言在打开模式后是否可以看到一些文本。因此,我正在使用B方法。但是它失败了,尽管我可以在屏幕截图中看到文本。

whenAvailable

我收到以下消息:

  

有1个失败:

     

1)Tests \ Browser \ RegistrationTest :: testRegistration没有看到   元素[body#modal-payment-info]中的预期文本[Payment]。   无法断言false为真。

屏幕截图:

enter image description here

我在做什么错了?

2 个答案:

答案 0 :(得分:1)

我有一个解决方法。我添加了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 :(得分:0)

我只是遇到了同样的问题,我认为在测试断言时根本就不存在,但是在截取屏幕截图时就出现了。

也可以使用->waitForText()而不是增加1秒的延迟,这样可以消除大多数不必要的等待时间。