我已经为Laravel安装了dusk,从一开始所有的测试都失败了。而不是查看我想要的页面,它们都返回 404 错误。
为了找出测试试图去的URL,而不是我想要的URL,我设置了一个自定义404页面并将以下代码放入其中:
$_SERVER['REQUEST_URI']
现在测试返回它尝试获取的 URL,我发现它在 URL 的末尾添加一个"/session",例如,如果我尝试检查:
'http://localhost/', DesiredCapabilities::chrome()
测试返回
<p>The requested URL /session was not found on this server.</p>
如果我像这样设置 URL:
'http://localhost/fortest', DesiredCapabilities::chrome()
测试将返回:
<p>The requested URL /fortest/session was not found on this server.</p>
我不知道这是否与Laravel/dusk或PHPUnit或Selenium有关。任何帮助表示赞赏。
正如我在回答您之前的问题时指出的那样,配置APP_URL
以匹配本地开发环境非常重要。
/sessions
通常是使用本机会话驱动程序时的默认会话文件位置。
首先,使用默认的 Selenium 服务器 URL 和端口创建远程 Web 驱动程序实例:
'http://localhost:9515', DesiredCapabilities::chrome()
然后运行位于Browser/ExampleTest.php
的第一个测试并验证当前 URL。
您可以像这样快速转储当前 URL:
public function testBasicExample() {
$this->browse( function ( Browser $browser ) {
$browser->visit( '/' );
var_dump( $browser->driver->getCurrentURL() );
} );
}