我今天尝试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');
});
}
当我运行黄昏命令时,黄昏模拟登录,它工作正常。我的模态正常工作,然后重定向到正确的页面。不知何故,我的测试失败了,因为它说实际的网址仍然是/
而不是我预期的/home
。每次测试失败时,Laravel黄昏都会截取屏幕截图。当我查看屏幕截图时,它位于右侧页面或网址,如assertPathIs()
。
任何人都可以指出为什么会发生这种情况?任何帮助将不胜感激。
答案 0 :(得分:3)
您可以像这样添加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