赛普拉斯:在工具栏中找不到按钮
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
})
我刚开始玩 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
})