Javascript 如何使用cypress.io检查嵌套阴影元素
如何定位位于嵌套阴影DOM内的搜索框 到目前为止,我尝试了几种不同的方法来定位,下面是其中之一,但没有成功: 定位器: 实际代码: 测试运行程序中出现错误:Javascript 如何使用cypress.io检查嵌套阴影元素,javascript,automated-tests,cypress,shadow-dom,Javascript,Automated Tests,Cypress,Shadow Dom,如何定位位于嵌套阴影DOM内的搜索框 到目前为止,我尝试了几种不同的方法来定位,下面是其中之一,但没有成功: 定位器: 实际代码: 测试运行程序中出现错误: 嵌套的shadow root使得很难确定应该在哪里添加.shadow()命令,但是您可以在(cypress.json)中全局启用shadow DOM搜索 包括阴影区 是否遍历阴影DOM边界,并在查询命令的结果中包含阴影DOM中的元素(例如cy.get()) cypress.json { ... includeShadowDom:
嵌套的shadow root使得很难确定应该在哪里添加
.shadow()
命令,但是您可以在(cypress.json)中全局启用shadow DOM搜索
包括阴影区
是否遍历阴影DOM边界,并在查询命令的结果中包含阴影DOM中的元素(例如cy.get())
cypress.json
{
...
includeShadowDom: true
}
您得到的错误是什么?添加了错误屏幕截图。您是否尝试将
includeShadowDom:true
添加到cypress.json?这可能会节省您在每个级别添加.shadow()
的时间。更新后,它现在可以工作了,您可以将它添加到您的答案中吗?顶部没有更多的阴影根。上面的解决方案不起作用,我也进行了测试。是的,我注意到了。从来没有测试过这么多的影子根!我们将检查并修改它。
class SearchComponents {
static validateSearchBar() {
cy.get(SDW_MAINAPP_G1)
.shadow()
.find(SDW_VOYAGEPANEL_G2B)
.find(SDW_VESSELLIST_G3B)
.find(SDW_VOYAGEFILTER_G4B1)
.find(INP_SEARCH_VESSEL)
.should('be.visible')
.should('be.enabled')
}
//...
}
{
...
includeShadowDom: true
}