Laravel Dusk未能在assertPathIs()中匹配url

我今天尝试laravel
dusk并使用模态组件设置登录.这是我的测试代码

public function testBasicExample()
{
    $this->browse(function ($browser) {
        $browser->visit('/')
                ->assertSee('My App')
                ->press('Login')
                ->whenAvailable('.modal', function($modal){
                    $modal->type('id','1112')
                        ->type('password','password')
                        ->press('Submit');
                })
                ->assertPathIs('/home');
    });
}

当我运行黄昏命令时,黄昏模拟登录,它工作正常.我的模态正常工作,然后重定向到正确的页面.不知怎的,我的测试失败了,因为它说实际的网址仍然是/我/我预期的家.每次测试失败时,Laravel黄昏都会截取屏幕截图.当我查看截图时,它位于右侧页面或url,如assertPathIs().

任何人都可以指出为什么会发生这种情况?任何帮助,将不胜感激.

最佳答案 您可以像这样添加waitForLocation:

– > waitForLocation( ‘/家’);

之前

– > assertPathIs( ‘/家’);.

最佳做法是使用显式等待(例如.-> waitForLocation(‘/ home’);而不是隐式等待(例如 – >暂停(3000)

看到:
http://elementalselenium.com/tips/47-waiting
https://laravel.com/docs/5.6/dusk#waiting-for-elements

点赞