我有一個包含多行和多列的表格。
我想觸發以下場景:
- 獲取任何列與特定關鍵字匹配的行。
- 單擊該行內的按鈕。
這是我的表結構:

這是我的代碼片段
clickOnDeleteIcon(email: string) {
cy.get('tbody.MuiTableBody-root tr td', { timeout: 20000})
.filter(`:contains(${email})`)
.parentsUntil('tbody.MuiTableBody-root tr')
.find('button[title = "Delete"]')
.click()
}
我也試過
clickOnDeleteIcon(email: string) {
cy.contains('tbody.MuiTableBody-root tr td', email).parent('tr')
.find('button[title = "Delete"]')
.click()
}
但是,我在過濾器中超時
Timed out retrying after 10000ms: Expected to find element: :contains(Julie_Williamson88@gmail.com), but never found it. Queried from element: [ <td.MuiTableCell-root.MuiTableCell-body.MuiTableCell-paddingNone>, 1535 more... ]
uj5u.com熱心網友回復:
該filter()命令使用 css,但:contains似乎不是此處所述的有效 css 。
您應該使用contains()來自 cypress 的命令按文本內容查詢元素。
我會像這樣使用它:
cy.get('tbody.MuitableBody-root')
.contains('tr', email)
.find('button[title="Delete"]')
.click();
uj5u.com熱心網友回復:
你可以這樣做:
cy.get('tbody.MuiTableBody-root tr', {
timeout: 15000,
})
.should('be.visible')
.each(($ele, index) => {
if ($ele.text().toLowerCase().trim().includes('[email protected]')) {
cy.wrap($ele).within(() => {
cy.get('[title="Delete"]').click()
})
}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/326187.html
標籤:查询 html-table 柏
