无头和有头网站测试的行为差异
Differences in behavior with headless and headed website testing
所以我们目前使用 TestComplete 进行浏览器测试,并希望切换到 Cypress。我的一位同事提到,无头测试不如在浏览器上模拟点击时可靠,就像真人点击一样(如在 TestComplete 中)。他说由于无头浏览器只构建 DOM 如果两个按钮重叠,自动化测试仍然可以点击重叠的按钮并且测试不会失败并且这不会发生在 TestComplete 中因为它模拟了真实的用户点击。
这是真的吗,因为我不认为这真的会发生?
Cypress click()
命令遵循 Cypress' rules of actionability。这些规则之一是覆盖,这意味着如果父元素覆盖了子元素,则该元素不被视为可操作的。这将涵盖您的具体问题,尽管您可以使用 cy.get('foo').click({ force: true })
.
覆盖可操作性要求
此外,您可以 运行 Cypress 处于有头或无头模式。默认情况下,使用 cypress run
执行 Cypress 将在无头模式下执行 Cypress(这可以通过传入有头标志来更改:cypress run --headed
),并且在使用 运行 时始终在有头模式下执行 cypress open
。 More information on that here.
所以我们目前使用 TestComplete 进行浏览器测试,并希望切换到 Cypress。我的一位同事提到,无头测试不如在浏览器上模拟点击时可靠,就像真人点击一样(如在 TestComplete 中)。他说由于无头浏览器只构建 DOM 如果两个按钮重叠,自动化测试仍然可以点击重叠的按钮并且测试不会失败并且这不会发生在 TestComplete 中因为它模拟了真实的用户点击。
这是真的吗,因为我不认为这真的会发生?
Cypress click()
命令遵循 Cypress' rules of actionability。这些规则之一是覆盖,这意味着如果父元素覆盖了子元素,则该元素不被视为可操作的。这将涵盖您的具体问题,尽管您可以使用 cy.get('foo').click({ force: true })
.
此外,您可以 运行 Cypress 处于有头或无头模式。默认情况下,使用 cypress run
执行 Cypress 将在无头模式下执行 Cypress(这可以通过传入有头标志来更改:cypress run --headed
),并且在使用 运行 时始终在有头模式下执行 cypress open
。 More information on that here.