【发布时间】:2021-08-25 20:04:43
【问题描述】:
我希望创建一个数组来存储搜索栏的多个条目, 例如在搜索栏中输入邮政编码,但存储 5-10 个邮政编码的数组
我知道如何使用 .get 和 .click 检索搜索栏以允许文本输入,但不确定如何创建和使用数组以使测试通过数组中的所有元素运行
【问题讨论】:
我希望创建一个数组来存储搜索栏的多个条目, 例如在搜索栏中输入邮政编码,但存储 5-10 个邮政编码的数组
我知道如何使用 .get 和 .click 检索搜索栏以允许文本输入,但不确定如何创建和使用数组以使测试通过数组中的所有元素运行
【问题讨论】:
Cypress 测试是用 javascript 编写的 - 您可以创建一个数组然后循环遍历它:
const zips = ['00000','12345','99999'];
zips.forEach( (zip) => {
cy.get('#yourElement).type(zip)';
} );
【讨论】:
我使用 Google 搜索栏尝试了此代码。我只是使用 vanilla javascript 遍历数组:
const searchTerms = ['cypress', 'puppeteer', 'cucumber'];
describe('Solving stackoverflow question', () => {
beforeEach(() => {
cy.visit('https://www.google.com/');
})
it('Google search', () => {
for (const term of searchTerms) {
cy.get('[aria-label="Search"]').clear()
.type(`${term}{enter}`);
cy.log(`Searched ${term}`);
}
});
});
【讨论】:
管理来自fixtures 的测试数据始终是一个好习惯。
首先,在fixtures文件夹zip.json下创建一个文件。该文件将包含我们的邮政编码数组。
["12345", "434343", "232525"]
然后在你的测试中,你可以直接写:
cy.fixture('zip.json').then(testdata => {
testdata.forEach(zipCode => {
cy.get('element').type(zipCode)
})
})
【讨论】: