Cypress.ioテストでJqueryを使用して、以下のhtmlタグから「Wildness」というdivの「text」値を取得する方法。サイプレステストで以下を試しましたが、コンソールで未定義になります。
const $divText = Cypress.$('.ibxudA .WildnessText-kRKTej').text()
cy.wrap($divText)
.should("eq", "Wildness")
<div class="sc-bMvGRv_onetwo">
<div>
<div class="abLeftSection">
<div class="abNewBtn-fTLJBK">
<button class="ifAKCX ohpWT" type="button">New</button>
</div>
<div class="kpLvEV" style="">
<div class="cWzXYZ">
<div class="OgGUG">
<div class="jsnnAD">
<svg class="dFvKsA"></svg>
</div>
</div>
<div class="ibxudA">First</div>
</div>
<div class="kpLvEV" style="">
<div class="bGADLM"><div class="OgGUG">
<div class="jsnnAD">
<svg class="dFvKsA"></svg>
</div>
</div>
<div class="ibxudA">
<div class="WildnessText-kRKTej" title="Wildness">Wildness</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
私はこれを試すかもしれません:
cy.get(".ibxudA").find('.WildnessText-kRKTej').invoke('text').then((text) => {
expect(text.trim()).equal('Wildness')
});
または
cy.get(".ibxudA").find('.WildnessText-kRKTej').should('have.text',"Wildness")
これは同様の質問になる可能性があります: サイプレスを使用して要素の内部テキストの等価性をどのように確認しますか?
私はあなたが次のようなビルトインサイプレスAPI 'contains'を使うことを勧めます:
cy.contains('Wildness')
HTMLタグ全体が選択されます。それが役に立てば幸い...
cy.get('.ibxudA .WildnessText-kRKTej').invoke('text').then((yourDivText) => {
expect(yourDivText.toString().toLowerCase()).to.contain('wildness');
});
it('get text', async () => {
const text = await new Cypress.Promise<string>((resolve) => {
cy.get('[data-testid="target"')
.invoke('text')
.then((txt) => resolve(txt.toString()))
})
cy.log(text)
})
1行の検証:
構文:
_cy.get(<selector>).invoke("text").should("eq", <your string>);
_
例:
_cy.get("div.myclass").invoke("text").should("eq", "My Text");
_
ここでは、次のメソッドを使用してテキストを取得します。 should()
は検証に使用されます。
_cy.get('element').invoke('text')
_