这是我试图在测试咖啡馆v1.0.1中运行的一种测试,我对此比较新。
这是我的test.js文件,其中我有三个不同的测试用例R03,R05,R06,每个单击SUBMIT按钮后下载一个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'))
});
不是理想的解决方案,但简单,如果设置适当的等待时间应该工作。
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