参照番号、目的、ボタンの列を持つテーブルを反復処理する必要があります。参照番号 == 希望のテキストと目的 == 希望のテキストかどうかを確認してから、ボタンをクリックします。現在の問題は、最初の行のみをチェックし、他の行を反復しないことです。
以下は私が試しているコードです:
clickButton(purpose) {
cy.xpath(this.objectFactory.referenceNoColumnXpath).each(
($e, index, $list) => {
const refNumberText = $e.text()
if (refNumberText.includes('automationRefNumberEdit')) {
cy.log(refNumberText)
cy.xpath(this.objectFactory.purposeColumnXpath).each(
($ee, indexx, $listt) => {
const purposeText = $ee.text()
cy.log(purposeText)
if (purposeText.includes(purpose)) {
const signatureElement = cy
.xpath(this.objectFactory.signatureButtonXpath)
.eq(indexx)
.find('img')
.should('have.attr', 'src')
if (signatureElement.should('contain', 'signature_gray')) {
cy.log(indexx)
cy.xpath(this.objectFactory.signatureButtonXpath)
.eq(indexx)
.first()
.click()
cy.xpath(this.objectFactory.applyNowButtonXpath)
.should('be.visible')
.click()
cy.VerifyAlert(
'Listing(s) has been updated successfully',
'rgb(65, 140, 89)'
)
}
}
if (!purposeText.includes(purpose)) {
assert.fail('Purpose not found in table')
}
return false
}
)
}
if (!refNumberText.includes('automationRefNumberEdit')) {
assert.fail('Reference number not found in table')
}
return false
}
)
}