Cypress测试运行程序未呈现块状类别

Cypress测试运行程序未呈现块状类别,cypress,blockly,google-blockly,Cypress,Blockly,Google Blockly,我有一个React web应用程序,它使用Blockly,我目前正在尝试编写使用Cypress框架的自动测试 Cypress在登录的基本过程中工作得很好,但是一旦Blockly被认为是加载的,它就会开始表现出不一致 大约有一半的时间,应用程序的整个块状部分根本不会显示在Cypress视口中。有时会出现,有时不会,我不确定是什么原因导致它,或者如何真正复制它,它似乎是随机的 是它正确加载时的外观 就是当它不能正常加载时的样子 起初,我认为它不起作用的原因是Blockly的资源没有加载,Cypres

我有一个React web应用程序,它使用Blockly,我目前正在尝试编写使用Cypress框架的自动测试

Cypress在登录的基本过程中工作得很好,但是一旦Blockly被认为是加载的,它就会开始表现出不一致

大约有一半的时间,应用程序的整个块状部分根本不会显示在Cypress视口中。有时会出现,有时不会,我不确定是什么原因导致它,或者如何真正复制它,它似乎是随机的

是它正确加载时的外观

就是当它不能正常加载时的样子

起初,我认为它不起作用的原因是Blockly的资源没有加载,Cypress试图访问不存在的资源

为了解决这个问题,我使用
cy.wait()
添加了一个延迟。我尝试了1s-10s之间的任何地方,但延迟似乎不会影响任何东西,无论延迟多长,它似乎不会影响应用程序的阻塞部分是否正确加载

以下是使用的Cypress测试文件部分的代码:

it('使用创建的配置文件登录',()=>{
cy.visit('localhost:3000/');
cy.get('input[name=“email”]”)
.type('test123@test.com)。应该('have.value','test123@test.com');
cy.get('input[name=“password”]”)
.type('testtest')。应('have.value','testtesttest');
cy.get('button[type=“submit”]”)。单击();
});
它('打开创建的项目',()=>{
cy.get('div[class=“project container”]”)。包含('test project')。单击();
});
它('将1+1块放入网格',()=>{//2s延迟
cy.wait(2000)。然后((prom)=>{
cy.get('div[class=“blocklyTreeRow”]”)。包含('Math')。单击({force:true});
});
});

它工作得非常完美,直到测试的“开放创建项目”部分运行之后,如果应用程序的阻塞部分出现,那么它就是成功或失败。请参阅上面的图片以了解可能发生的情况。

请检查您没有尝试自动执行iframe,因为cypress不支持iframe

问题:

其他:

尝试使用别名

// Wait for the route aliased as 'getAccount' to respond
// without changing or stubbing its response
cy.server()
cy.route('/accounts/*').as('getAccount')
cy.visit('/accounts/123')
cy.wait('@getAccount').then((xhr) => {
  // we can now access the low level xhr
  // that contains the request body,
  // response body, status, etc
})
此处提供了更多文档:


我调查了一下,发现没有使用iframe,只有div。我还应该澄清,当我说我等待2秒时,我不是在等待API或HTTP请求,而是在等待我的计算机加载编辑器(我认为这是瓶颈),这里不是这样,所以不需要使用XHRs。