web-dev-qa-db-ja.com

Cypress.ioテストでテーブル<td>にデータを表示する方法

Cypress.ioテストで、フィルターを適用した後にテーブルに表示された「データ」を確認しているときに、「CypressError:タイムアウト再試行:未定義のプロパティ 'eq'を読み取れません」をスローします。誰かが以下のテストで問題を修正する方法をアドバイスしてもらえますか?以下に表のHTML画像を追加しました。

describe('Filter Test', function() {
    it.only('Check if the records are filtered successfully', function() {
        cy.visit('http://www.seleniumeasy.com/test/table-search-filter-demo.html')          
        cy.get('button').contains('Filter').click()
        cy.get('input[placeholder="Username"]').type('jacobs')  
        cy.get('table').should(($tr) => {
        const $tds = $tr.find('td') // find all the tds
        expect($tds.cells.eq(0)).to.contain('jacobs')   
        })

    })      

})

enter image description here

enter image description here

5
soccerway

これを行うには複数の方法がありますが、この場合、contains()関数がはるかに簡単です。

_cy.get('table').contains('td', 'jacobs');
_

これにより、table要素が取得され、tdタグがテキストjacobsとともに含まれていることがアサートされます。


contains()はセレクターとしても機能することは注目に値します。通常のサイプレスの方法では、次のようにチェーンオフを続けることができます。

_cy.get('table').contains('td', 'jacobs').should('be.visible');

cy.get('table').contains('td', 'jacobs').then(elem => {
    // Do something with this specific element...
});

// etc...
_
8
Joshua Wade