赛普拉斯:在工具栏中找不到按钮

Cypress: cannot find button in toolbar

我刚开始玩 cypress,我想在我的沙盒应用程序中写下一些测试。在我的第一个测试中,用户应单击 'button' 以显示工具栏,然后单击按钮以激活该功能,然后在 leaflet 地图上单击几次以绘制一条线。

如您所见:点击'Tools',然后点击'draw route'按钮,然后点击地图绘制。

这个虚拟应用程序被包裹在一个网络组件中,这里是代码:

这是我的测试代码:

describe('Draw geometries on map', ()=>{
  beforeEach(() => {
    cy.visit('http://192.168.49.2:30000/scouter/');
  })

  ...

  it('can draw after clicking draw button', ()=>{
    cy.get('scouter-web').shadow().find('.scouter-tools-main-button').click()
    cy.get('scouter-web').shadow().find('draw route').click()
    console.log('new cy')
    cy.get('scouter-web').shadow().get('scouter-web').shadow().find('#map')
    .click(400, 400)
    .click(400, 600)
    .click(500, 600)
  })
});

问题是我在单击 'Tools' 后无法 'find' 'draw route' 按钮。我错过了什么?整个东西都可以找到 here,子项目是 scouter-web.

无需重复使用 shadow(),您可以在 cypress.json 文件中提及一次 includeShadowDom: true

对于 find,您可以只使用选择器,但我认为您使用的是文本。如果只想使用文本,可以使用contains。

cy.contains('draw route').click()

如果您的应用程序抛出 Uncaught Exceptions,您可以添加到 cypress/support/index.js 以全局关闭所有未捕获的异常处理。但是有一点警告,只有当您确定可以忽略生成的异常时才执行此操作。

Cypress.on('uncaught:exception', (err, runnable) => {
  // returning false here prevents Cypress from
  // failing the test
  return false
})