如何在继续进行TestCafe中的下一个测试之前等待文件下载

时间:2019-03-07 17:02:13

标签: node.js testing automated-tests e2e-testing testcafe

这是我正在尝试在测试咖啡馆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'))
 });

1 个答案:

答案 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