testing - 赛普拉斯 querySelectorAll | 如何像使用 chrome 开发人员控制台一样选择正确的元素?
问题描述
我目前正在使用 cypress 来测试 salesforce,并且遇到了某种情况,我不知道将在机会中创建它的 Party 记录 ID。这意味着我必须找到一种解决方法来选择特定的当事人记录才能编辑文件。
如果我使用 chrome 工具或在 cypress 中执行以下操作,我可以调用该元素,但它不会打开或单击任何内容:
cy.document().then((doc) => {
const edit = doc.querySelectorAll("a")[41]
const click = doc.querySelectorAll("a")[42]
edit.click()
click.click()
})
问题是cypress没有任何点击,我无法前进。有谁知道在这些情况下我们可以做什么?
这是向下箭头元素:
解决方案
您可以使用each()
迭代所有下拉菜单并根据索引执行以下操作click()
:
cy.get('svg[data-key="down"]').each(($ele, index) => {
if (index == 2) { //For second down arrow
cy.wrap($ele).click() //Clicks the second down arrow
//Do Something else
}
})
如果正常点击不起作用,您可以使用click({force: true})
.
或者,如果上述方法不起作用,那么我猜你有,那么你必须使用shadow()
进入 shadow dom 然后执行click()
-
cy.get('svg[data-key="down"]').each(($ele, index) => {
if (index == 2) {
cy.wrap($ele).shadow().find('svg#down').click()
//Do Something else
}
})
推荐阅读
- ruby - Ruby Restclient 不同的双点或 astrophobe 并且顺序很重要
- python - 继承中的赋值类型不兼容 - Mypy 错误
- ios - Swift 中的 Alamofire 和 ObjectMapper 到 TableView
- linux - Linux,重击。检测 USB 设备数据传输是否处于活动状态
- java - Apache Avro - Avro 地图值中的复杂类型
- android - 滚动到另一个页面后,ViewPager 中的视图不可见
- java - 故障转移到 CRL:证书未指定 OCSP 响应者
- android - windowSoftInputMode 在 scrollView android 中不起作用
- algorithm - 如何直接找到一个点旁边的所有点?
- mysql - 如果值不存在,则在其他列中搜索