1

参照番号、目的、ボタンの列を持つテーブルを反復処理する必要があります。参照番号 == 希望のテキストと目的 == 希望のテキストかどうかを確認してから、ボタンをクリックします。現在の問題は、最初の行のみをチェックし、他の行を反復しないことです。

以下は私が試しているコードです:

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
      }
    )
  }
4

0 に答える 0