我正在编写一些测试,我想看看Dusk是否正确填写了输入字段,但Dusk在运行测试时没有显示浏览器,有没有办法强迫它这样做?
答案 0 :(得分:8)
在DuskTestCase::driver()
中禁用无头模式:
$options = (new ChromeOptions)->addArguments([
//'--disable-gpu',
//'--headless'
]);
答案 1 :(得分:0)
在您的tests/DuskTestCase.php
文件顶部附近,添加:
use Facebook\WebDriver\Chrome\ChromeOptions;
在同一文件中,将整个driver()
函数替换为:
/**
* Create the RemoteWebDriver instance.
*
* @return \Facebook\WebDriver\Remote\RemoteWebDriver
*/
protected function driver() {
$options = (new ChromeOptions)->addArguments([
//'--disable-gpu',
//'--headless'//https://stackoverflow.com/q/49938673/470749
]);
return RemoteWebDriver::create(
'http://localhost:9515', DesiredCapabilities::chrome()->setCapability(
ChromeOptions::CAPABILITY, $options
)
);
}
答案 2 :(得分:0)
您可以使用 2 种方法禁用 Headless:
方法 1:将此添加到您的 .env
DUSK_HEADLESS_DISABLED=true
方法 2:如果您不需要为所有测试显示浏览器,请将其添加到您的特殊测试用例中
protected function hasHeadlessDisabled(): bool
{
return true;
}
顺便说一句,我不知道为什么文档中没有提到这些。我自己从 DuskTestCase.php 中找到了上述方法。