Javascript 不计算React站点与Cypress中的DOM元素?
我无法计算用React编写的站点上DOM元素的数量Javascript 不计算React站点与Cypress中的DOM元素?,javascript,reactjs,cypress,Javascript,Reactjs,Cypress,我无法计算用React编写的站点上DOM元素的数量 /// <reference types="cypress" /> context('Checking all components', () => { beforeEach(() => { cy.visit('https://news-israel.com'); }); it('Checking posts', () => { cy.
/// <reference types="cypress" />
context('Checking all components', () => {
beforeEach(() => {
cy.visit('https://news-israel.com');
});
it('Checking posts', () => {
cy.get('.posts-wrapper').find('a').should('exist');
cy.get('.posts-wrapper').find('a').its('length').should('be.gte', 100);
});
});
//
上下文('检查所有组件',()=>{
在每个之前(()=>{
参观https://news-israel.com');
});
它('检查帖子',()=>{
cy.get('.posts wrapper').find('a').should('exist');
cy.get('.posts wrapper').find('a').its('length').should('be.gte',100);
});
});
在本例中,它找不到“a”标记,因为React以异步和动态方式呈现它们。
“post wrapper”类找到,然后是一个异常:
以下错误源于应用程序代码,而不是Cypress。
无法读取未定义的属性“substr”
当Cypress检测到源于应用程序的未捕获错误时,它将自动使当前测试失败
在这种情况下,如何正确计算元素的数量,以便“等待元素”
我正在测试的站点正在生产中-错误来自应用程序本身,最终应该在应用程序源代码中修复 但请看日志中的注释 此行为是可配置的,您可以选择通过侦听uncaught:exception事件来关闭此行为 此链接指向可用于调试的事件处理程序。将其添加到测试的顶部,以在错误发生时抑制测试失败
Cypress.on('uncaught:exception',(err,runnable)=>{
//此处返回false可防止Cypress
//考试不及格
返回错误
})
现在测试工作了,只要您使用正确的类posts-wrapper
而不是post-wrapper
如果您能够修复源代码,则错误来自
react-typed
库,该库在第75行的BreakingNews.js
中使用
<Typed
strings={posts}
typeSpeed={15}
backSpeed={10}
backDelay={5000}
loop
/>
posts变量最初未定义,因此需要一个回退值,例如
strings={posts | |[]}
您要查找的类是posts wrapper
而不是post wrapper
。