【问题标题】:conditional testing in cypress - testing if element existcypress 中的条件测试 - 测试元素是否存在
【发布时间】:2022-01-14 03:41:38
【问题描述】:

在我的自动化中,我试图在页面上查找具有特定文本的元素。
更具体地说:每个页面都是一个电影信息页面,并且有一个演员列表,我正在尝试找到一个特定的演员。
如果找到,我会数一数 - count ++
如果没有,我将转到下一页并尝试在那里找到它。
一次又一次,直到我搜索了所有页面。
我遇到的问题是如何获取元素的文本,并且每当自动化找不到文本时它就会崩溃。

元素:<a data-testid="title-cast-item__actor" href="/name/nm2794962?ref_=tt_cl_t_1" class="StyledComponents__ActorName-y9ygcu-1 eyqFnv">Hailee Steinfeld</a>

区分元素标识的一件事是内部文本(演员的名字)

【问题讨论】:

标签: automation cypress


【解决方案1】:

类似这样的:

let x = 0;
cy.visit('/your/pages')
cy.get('[data-testid="title-cast-item__actor"]')
  .contains('Hailee Steinfeld')
  .then(() => cy.log(`Count: ${++x}`));

或访问您的所有页面:

let x = 0;
const pages = ['/page1', '/page2'];
cy.wrap(pages).each((page) => {
  cy.visit(page);
  cy.get('[data-testid="title-cast-item__actor"]')
  .invoke('text')
  .then((text) => {
    cy.log(`Actor: ${text}`);
    if (text === 'Hailee Steinfeld') {
      x++;
    }
    return cy.wrap(x);
  })
}).should('be.greaterThan', 0);

但请注意,cypress 不推荐条件测试。见https://docs.cypress.io/guides/core-concepts/conditional-testing#The-problem

【讨论】:

  • @yuv:如果这解决了您的问题,请将此答案标记为已接受。
猜你喜欢
  • 2013-11-11
  • 2019-12-27
  • 2021-03-04
  • 2017-07-29
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
相关资源
最近更新 更多