我有以下测试:
fixture('Minimal reproduction')
.page('http://www.sport-conrad.com/');
test('Navigate to item-details', async t => {
await t
.click('.dropdown-toggle')
.click('.productData:first-of-type a')
});
当我运行它时,
testcafe chrome test.js
它按预期工作。
如果我这样做了,testcafe nightmare test.js
我会得到错误The element that matches the specified selector is not visible.
。
我追踪到这一事实,显然电子浏览器的噩梦使用打开了带有视口的页面,导致桌面导航消失,因此.dropdown-toggle
不再可见。所以我通过添加手动调整大小来解决这个问题:
fixture('Minimal reproduction')
.page('http://www.sport-conrad.com/');
test('Navigate to item-details', async t => {
await t
.resizeWindow(1024, 900)
.click('.dropdown-toggle')
.click('.productData:first-of-type a')
});
所以我的第一个问题:虽然这可行,但是否有另一种方法可以提供 testcafe 在噩梦模式下打开浏览器的维度?
...但是:现在.dropdown-toggle
又回来了,我希望测试再次通过,就像以前一样。
不幸的是,现在我遇到了另一个错误:The specified selector does not match any element in the DOM tree.
...这似乎与第二个选择器有关。我不确定为什么。
所以我的第二个问题:这里的噩梦浏览器有什么不同?我在另一个页面上尝试了一个类似的测试用例,它似乎可以像 chrome 一样正常加载页面。
我还尝试了一些解决方法,例如强制浏览器等待一段时间,但没有任何效果。
也许有人可以在这里为我指明正确的方向?:)