当前位置:  开发笔记 > 程序员 > 正文

Laravel Dusk无法匹配assertPathIs()中的url

如何解决《LaravelDusk无法匹配assertPathIs()中的url》经验,为你挑选了1个好方法。

我今天尝试拉拉威尔(Laravel)黄昏,并使用模态组件设置登录名。这是我的测试代码

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');
    });
}

当我运行黄昏命令时,黄昏会模拟登录并且工作正常。我的模式可以正常工作,然后重定向到正确的页面。不知何故,我的测试失败了,因为它说实际的URL仍然/不是/home我期望的。每当测试失败时,Laravel黄昏都会拍摄一张屏幕截图。当我查看屏幕截图时,它位于的正确页面或url中assertPathIs()

任何人都可以指出为什么会这样吗?任何帮助,将不胜感激。



1> 小智..:

您可以像这样添加一个waitForLocation:

->waitForLocation('/home');

之前

->assertPathIs('/home');


最佳做法是使用显式等待(例如,->waitForLocation('/home');而不是隐式等待(例如,->pause(3000)

请参阅:
- http://elementalselenium.com/tips/47-waiting
- https://laravel.com/docs/5.6/dusk#waiting-for-elements

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有