【问题标题】:Directory path is incorrect when running from cypress test runner从 cypress 测试运行器运行时目录路径不正确
【发布时间】:2020-02-28 20:30:51
【问题描述】:

当我从普通浏览器登录时,使用 URL 登录成功:http://neelesh.zapto.org:8084/EnrolMe/indHome.html

但是当我从赛普拉斯运行脚本时,目录位置没有附加,登录后的新 URL 形成为:http://neelesh.zapto.org:8084/__/indHome.html

我试过用

设置 cypress.json
{
    "chromeWebSecurity": false,
    "modifyObstructiveCode" : false
}

我已经尝试过 chrome/electron(有头和无头)。

下面是我的代码sn-p:

describe('My First Test Suite', function() {
    it('My First test case', function() {

      cy.visit("http://neelesh.zapto.org:8084/EnrolMe")
      cy.get("#login").click()
      cy.get("input[value='Individual']").click()
      cy.get("#username").type('1234567890')
      cy.get("#pwd").type('0646')
      Cypress.Cookies.debug(true)
      cy.clearCookies()
      cy.get("#login").click()
      cy.wait(6000)
   })
})

当我从 Cypress 运行脚本时,不会附加目录位置,登录后的新 URL 形成为:http://neelesh.zapto.org:8084/__/indHome.html

应该重定向为:http://neelesh.zapto.org:8084/EnrolMe/indHome.html

谁能帮我解决这个问题?

【问题讨论】:

    标签: cypress


    【解决方案1】:

    这听起来像是“框架破坏”的问题。 Cypress GitHub Issue #992 的相关讨论可能会有所帮助。

    您的应用程序代码可能包含有问题的帧破坏代码,如下所示:

    if (window.top !== window.self) {
      window.top.location.href = window.self.location.href;
    }
    

    您可以通过将应用程序代码对 window.self 的引用从应用程序窗口更改为赛普拉斯测试运行程序窗口 (window.top) 来解决此问题。

    Cypress emits a series of events 在您的浏览器中运行。您可以使用发出的window:before:load application event 来确保它在您尝试登录之前完成。

    // cypress/support/index.js
    Cypress.on('window:before:load', (win) => {
      Object.defineProperty(win, 'self', {
        get: () => {
          return window.top
        }
      })
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-23
      • 1970-01-01
      • 2022-09-24
      相关资源
      最近更新 更多