Testcafe example to assert file download

与世无争的帅哥 提交于 2019-12-24 03:51:10

问题


I want to write a fixture to simulate the export file and make sure a file is downloaded from browser actions. any example?

NA


回答1:


There's not a fancy way check if the download has finished, TestCafe is somewhat limited in its ability to control the download ability in the browser.

import fs from 'fs';

const fileName = 'junk.txt';
const downloadLocation = 'C:\\Wherever\\Downloads\\';
const fileDLUrlBase = 'https://example.com/downloads/';
fixture('download test fixture');
test('download test', async t => {
  await t.navigateTo(fileDLUrlBase + fileName);
  await t.wait(30000);
  // Wait 30 seconds
  await t.expect(fs.fileExistsSync(downloadLocation + fileName));
});

You could convert that to a loop that checks, say, every 5 seconds for 60 seconds, if you wanted.




回答2:


  // Wait 15*1000 ms or less
  async function waitForFile (path) {
     for (let i = 0; i < 15; i++) {
        if (fs.existsSync(path))
           return true;

        await t.wait(1000);
     }

     return fs.existsSync(path);
  }

  await t.expect(await waitForFile(/*path*/)).ok();


来源:https://stackoverflow.com/questions/57582108/testcafe-example-to-assert-file-download

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!