【发布时间】:2019-04-29 21:42:14
【问题描述】:
我正在将我的 Laravel 5.3 网站升级到 5.5,但无法让 Dusk 在我的本地主机上正常工作。我有其他单元测试在我的本地主机上正常工作,但由于某种原因,Dusk 为任何本地页面返回 "<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body></body></html>"。本地页面似乎可以在我的桌面上正常浏览。
我的 DuskTestCase
protected function driver()
{
$options = (new ChromeOptions)->addArguments([
'--disable-gpu',
'--headless',
'--no-sandbox',
'--ignore-certificate-errors'
]);
return RemoteWebDriver::create(
'http://localhost:9515',
DesiredCapabilities::chrome()
->setCapability(WebDriverCapabilityType::ACCEPT_SSL_CERTS, true)
->setCapability('acceptInsecureCerts', true)
->setCapability(
ChromeOptions::CAPABILITY, $options
)
);
}
我的样本测试
public function testBasicExample()
{
$this->browse(function (Browser $browser) {
$result = $browser->visit('http://localhost');
$browser->screenshot('test');
$browser->dump();
});
}
- chrome 驱动程序可以正常调用 google.com 并转储内容
- 将 url 硬编码到 localhost 以供测试
- 页面是 http 不是 https
- 在调用测试之前尝试了php artisan serve,结果相同
- 尝试过缓存/清除配置
- 创建了一个
.env.dusk.local文件,似乎没有影响它 - chromedriver -v 是
ChromeDriver 2.44.609551 - 试过 127.0.0.1 没有骰子
【问题讨论】:
-
尝试将
APP_URL=http://127.0.0.1:8000与php artisan serve结合使用。 -
@JonasStaudenmeir 刚刚尝试过,但由于某种原因仍然有空白标签
-
您是否在
.env或.env.dusk.local文件中设置了APP_URL? -
@JonasStaudenmeir 我对两者都支持,我还在访问方法中硬编码 url 只是为了理智,它不起作用,用端口卷曲 ip 返回数据库连接错误 - 我怀疑这是因为我正在运行 laradock 它无法通过 mysql 连接与数据库通信,但它使用 apache2 容器连接良好
标签: laravel laravel-5 laravel-dusk