首页 > 解决方案 > 赛普拉斯 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没有任何点击,我无法前进。有谁知道在这些情况下我们可以做什么?

这是向下箭头元素:

在此处输入图像描述

标签: testingautomationsalesforcecypressqa

解决方案


您可以使用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
  }
})

推荐阅读