使用赛普拉斯通过Web网关登录即可超时

时间:2018-02-09 11:59:39

标签: javascript testing automation qa cypress

我正在尝试为我的webapp执行一些测试,但为了做到这一点,我必须登录到外部网站,为了做到这一点,我的beforeEach声明是:

beforeEach(()=>{
    cy.visit('http://localhost:3001/')
    cy.get('#username')
        .type('user');
    cy.get('#password')
        .type('pass');
    cy.get('#fm1 > div > section.row.btn-row > input.btn.btn-submit.btn-block')
        .click();
})

预期的行为是当我转到localhost:3001时,它会将我重定向到另一个我设置登录凭据的网站,点击登录后会将我重定向到原始网站。

问题是在局外人网站上我收到了这个

  

CypressError:等待“60000ms”后,您的远程页面超时   加载。

     

您的页面未在'60000ms'内触发其“加载”事件。

     

您可以尝试增加'cypress.json'中的'pageLoadTimeout'值   等待更久。

     

浏览器不会触发'load'事件,直到所有样式表和   脚本完成下载。

     

当发生'load'事件时,赛普拉斯将继续运行命令。

     

因为这个错误发生在我们之前的'每个'钩子之前   跳过当前套件中的剩余测试:'测试拖动和   放下,在cypr ......'

我试图增加pageLoadTimeout,但它没有工作,你能否就这个问题给我一些指导?

1 个答案:

答案 0 :(得分:1)

如果您的页面上存在无法在赛普拉斯浏览器内部解析的外部资产,则可能发生这种情况。也许您的情况就是这种情况? 更新企业应用程序中的标头组件后,我遇到了类似的问题。突然所有e2e测试都失败,并出现此“未触发加载事件”错误。

经过大量研究,我偶然发现,通过绝对外部URL包含了新插入的公司徽标。通过在CI中执行cypress,该URL被防火墙规则所阻止。 这导致页面加载事件被阻止,从而导致测试失败。将图片网址更改为相对路径后,一切又恢复正常了。

那么,也许您的“外部”网站也有类似的案例?!