测试元素是否存在的条件测试



在我的自动化中,我试图在页面上找到一个具有特定文本的元素。
更具体地说:每个页面都是一个电影信息页面,有一个演员列表,我正在努力寻找一个特定的演员。
如果找到,我会数它——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>

区分元素标识的一件事是内部文本(参与者的名称(

类似这样的东西:

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);

但要注意,条件测试是柏树不建议的。看见https://docs.cypress.io/guides/core-concepts/conditional-testing#The-问题

最新更新