我正在尝试创建一个for循环,在该循环中,我将使用beforeEach传递列表中的所有文件,然后要迭代该列表,以便通过api调用上传文件。
我已将所有文件放在cypress / fixture / files文件夹下。
我想将fixture / files文件夹下的文件添加到数组中,如下所示:
beforeEach(() => {
cy.fixture('files/').as('files')
});
然后,我想迭代文件数组以通过api调用上传文件。
我使用下面的代码进行迭代:
cy.wrap(files).each((index) => {
const fileName = files[index];
当我尝试使用以上代码时,出现以下错误。我不确定我是否使用了正确的方法。
我不确定这是否可以解决问题,但是使用别名的方式不正确。您需要cy.wait('@files')
获取别名的值。cy.get('@files')
也是正确的语法,但是在这里不起作用,因为它cy.fixture()
是从磁盘读取的(因此必须等待它完成)。
由于您是在加载文件后立即使用文件,因此请删除别名并使用a.then()
等待
/*
Fixture file contains:
{
"uploadFilePng": "files/cypressFileUpload.png",
"uploadFileDmg": "files/cypressFileUpload.dmg",
...
}
*/
cy.fixture('files/cypressFileUpload').then(files => {
const fileNames = Object.values(files);
cy.wrap(fileNames).each(fileName => {
console.log(fileName); // should see "files/cypressFileUpload.png", "files/cypressFileUpload.dmg"
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句