首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cypress.io如何检查网页是否包含特定元素,如果包含,则启动测试

Cypress.io如何检查网页是否包含特定元素,如果包含,则启动测试
EN

Stack Overflow用户
提问于 2020-09-01 18:15:33
回答 1查看 796关注 0票数 0

我有一个使用"for“循环的测试,对于每个循环,它都会更改数组的url。主要任务是获取所有img标记,并检查它们是否具有alt属性。

但是它发生在一些子页面上,它们根本没有img标记。然后我的测试在当前循环上失败,然后开始下一个循环。

AssertionError:超时重试:期望查找元素: img,但从未找到.

我想修改我的代码以检查之前,如果子页面包括一些img,如果不是,只需要通过测试用例并启动另一个循环。

我试过几次,用"if“语句,但我自己处理不了.

如果有人有什么想法,请帮助:)

下面是一个检查所有索引的代码,如果索引中没有img .

代码语言:javascript
复制
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;
            });
        })
    })
}

谢谢你的每一个回应!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-02 14:32:25

柏树文档解释(并警告)条件测试这里。一个可能的解决办法是:

代码语言:javascript
复制
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;
        });
      });
    }
  })
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63693273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档