Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不计算React站点与Cypress中的DOM元素?_Javascript_Reactjs_Cypress - Fatal编程技术网

Javascript 不计算React站点与Cypress中的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.

我无法计算用React编写的站点上DOM元素的数量

/// <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