柏树单击与文本元素位于同一行的按钮

Cypress click on button on same line with the text element

我在网站上多次单击具有相同 class 的按钮时遇到问题。 首先,我需要找到一个特定的名称,然后单击位于相同 line/row.

上的按钮

我试图实现波纹管,但它可以找到按钮。

cy.contains('user2@gmail.com')  
.parents('tr')
.find('button')
.click()

例如,我需要找到名称“Agranov Anton”并单击其旁边的时钟图标。名字每次都变。

假设名称 Agranov Anton 是一个 td 元素并且 button 是您正在单击的按钮的正确选择器,您可以这样做:

cy.contains('td', 'Agranov Anton')
  .parent('tr')
  .within(() => {
    cy.get('button').click()
  })

时钟图标是第二个按钮,所以添加 .eq(1) 选择那个

cy.contains('user2@gmail.com')  
.parents('tr')
.find('button')
.eq(1)
.click()

您也可以在第一步指定<tr>元素

cy.contains('tr', 'user2@gmail.com')  
.find('button')
.eq(1)
.click()

但也许时钟图标使用了 <a> 元素,如果是这样则使用

cy.contains('tr', 'user2@gmail.com')  
.find('a')
.eq(1)
.click()