我有一个使用"for“循环的测试,对于每个循环,它都会更改数组的url。主要任务是获取所有img标记,并检查它们是否具有alt属性。
但是它发生在一些子页面上,它们根本没有img标记。然后我的测试在当前循环上失败,然后开始下一个循环。
AssertionError:超时重试:期望查找元素: img,但从未找到.
我想修改我的代码以检查之前,如果子页面包括一些img,,如果不是,只需要通过测试用例并启动另一个循环。
我试过几次,用"if“语句,但我自己处理不了.
如果有人有什么想法,请帮助:)
下面是一个检查所有索引的代码,如果索引中没有img .
describe("#13939 - Accessibility - Alt text and link title - Group", () => {
let url = [
"https://index-0",
"https://index-1",
"https://index-2",
"https://index-3"
]
for (let i = 0; i < url.length; i++) {
it(`Accessibility - Alt text ${i}`, () => {
cy.visit(url[i]);
cy.get("img").each((item) => {
cy.wrap(item).should("have.attr", "alt").then((alt) => {
expect(alt).not.be.empty;
});
})
})
}谢谢你的每一个回应!
发布于 2020-09-02 14:32:25
柏树文档解释(并警告)条件测试这里。一个可能的解决办法是:
cy.visit(url[i]);
cy.get('body')
.then(($body) => {
let images = $body.find('img');
if (images.length === 0) {
cy.log('Nothing here...');
} else {
cy.wrap(images).each((item) => {
cy.wrap(item).should("have.attr", "alt").then((alt) => {
expect(alt).not.be.empty;
});
});
}
})https://stackoverflow.com/questions/63693273
复制相似问题