这是我正在尝试在测试咖啡馆v1.0.1中运行的一种测试,对此我还比较陌生。
这是我的test.js文件,其中有三个不同的测试用例R03,R05,R06 单击“提交”按钮后,每个按钮都会下载一个EXCEL文件。
但是在下载完成之前,浏览器将关闭并继续进行下一个测试。
如何让浏览器等到文档下载后再进行下一个测试(本例中为r05)?
import { Selector } from 'testcafe';
fixture `First Fixture`
.page `http://devexpress.github.io/testcafe/example`;
test('R03', async t => {
await t
.click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Year_1'))
.click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Location_1'))
.click(Selector('span').withText('SUBMIT'))
});
test('R05', async t => {
await t
.click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Year_2'))
.click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Location_2'))
.click(Selector('span').withText('SUBMIT'))
});
test('R06', async t => {
await t
.click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Year_3'))
.click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Location_3'))
.click(Selector('span').withText('SUBMIT'))
});
答案 0 :(得分:3)
不是理想的解决方案,而是简单的方法,如果设置了适当的等待时间,则应该可以工作。
test('R03', async t => {
await t
.click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Year_1'))
.click(Selector('[data-bind^="css:{ \\\'dx-state-disabled\\\'].find('div').withText('Location_1'))
.click(Selector('span').withText('SUBMIT'))
.wait(60000); // in ms
});
另一种解决方案是编写一个函数来检查文件是否在目录中-请参阅答案here