我正在使用Dusk测试我的Laravel网站。问题是黄昏无法找到某个元素。我已经使用Chrome开发人员工具复制了元素选择器,我的代码如下所示。
$browser->assertSeeIn('#content-container > div > div.table-responsive > table > tbody > tr > td:nth-child(1)', 'Test 1');
我也尝试过xpath。也失败。我无头运行测试,因此可以看到显示了正确的页面。黄昏确实有问题,即使它在正确的页面上也找不到答案。我也尝试过:
$browser->assertSeeIn('table > tbody > tr > td:nth-child(1)', 'Test 1');
我想念什么?
答案 0 :(得分:0)
您是否有机会在无头模式下运行测试?我有一个类似的问题(测试取决于选择器)。检查您的基类(DuskTestCase
)的驱动程序方法。
protected function driver()
{
$options = (new ChromeOptions)->addArguments([
'--disable-gpu',
'--window-size=1024,768',
// headless mode breaks every test that assert stuff about the url or use css/dusk selectors.
// '--headless',
'--no-sandbox',
]);
...
}
答案 1 :(得分:0)
我找到了答案。我在测试中使用assertAuthenticated(),这迫使浏览器转到已登录用户的json消息。因此,如果您只是进行测试,请避免一起使用assertAuthenticated()。