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

问题描述 投票:2回答:1

这是我试图在测试咖啡馆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'))
 });
node.js testing automated-tests e2e-testing testcafe
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.