剧作家更改文件名称时上传文件(setInputFiles)

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

我正在将 e2e 测试从 cypress 转移到 playwright,但遇到了问题。在赛普拉斯中,您可以在上传时重命名文件,但我找不到您可以使用剧作家来执行此操作。有人知道这是可能的吗?

我正在测试的系统需要有唯一的文件,所以我需要重命名文件才能上传。

编剧:

await page.locator('input[type=file]').setInputFiles('../image.png');

柏树:

cy.fixture('../image.png', { encoding: null }).as('testImage');
cy.get('input[type=file]').selectFile(
 {
    contents: '@testImage',
    fileName: mediaFileName,
    lastModified: Date.now(),
  },
  { force: true },
);
javascript e2e-testing playwright
1个回答
0
投票

你也可以在剧作家中这样做。

setInputFiles
https://playwright.dev/docs/api/class-locator#locator-set-input-files 支持具有名称/类型/缓冲区的对象。

这是一个如何操作的示例。

test('should do upload file with different name.', async ({page}, testInfo) => {
    await page.goto('https://tmpfiles.org/');

    const fileBuffer = fs.readFileSync('dummy.test.txt')
    const uploadInput = page.locator('input[name=\'file\']');
    const newFileName= '1234abc.txt'
    await uploadInput.setInputFiles({buffer: fileBuffer, name: newFileName, mimeType: 'text/plain'});

    const uploadBtn = page.locator('input[name=\'upload\']')
    await uploadBtn.click();
});

您提供的属性

name
将用于文件上传。

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