自动滚动 Cypress 行为导致下拉菜单在 Cypress 测试中关闭。有解决方法吗?

Kie*_*n M 3 cypress

Cypress 的自动滚动行为正在关闭我试图在其中选择元素的下拉列表。这会导致测试失败,因为找不到第一个下拉项。

我添加的解决方法是添加第二个.click()以在输入输入后重新打开下拉列表:

    cy.get(selector).click({ force: true });
    cy.get(selector).type(input);
    cy.get(selector).click();
    cy.get(itemSelector).first().click({ force: true });
Run Code Online (Sandbox Code Playgroud)

但这似乎很笨拙。还有其他方法可以做到这一点吗?

Kio*_*owa 5

有一些缓解措施可以尝试(都很笨拙)。

  • 在与元素交互之前滚动元素(因为您必须强制单击)
  • 关闭滚动行为
  • 使视口足够大,无需滚动
it('tests without scrolling', {scrollBehavior:false}, () => {
  cy.viewport(1500,1000)
  cy.visit(...)

  cy.get(selector).scrollIntoView()
  cy.get(selector).click()           // should not have to force
  cy.get(selector).type(input)
  cy.get(itemSelector).first().click()
})
Run Code Online (Sandbox Code Playgroud)