如何使用 jquery 在 Cypress 测试中获取 div 'text' 值
How to get div 'text' value in Cypress test using jquery
在 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 .WildnessText-kRKTej').invoke('text').then((yourDivText) => {
expect(yourDivText.toString().toLowerCase()).to.contain('wildness');
});
我可能会试试这个:
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')
它会 select 整个 HTML 标签给你。希望对你有帮助...
一行验证:
语法:
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')
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)
})
cy.get("WildnessText-kRKTej").then(function($elem) {
cy.log($elem.text())
})
截至 2020 年 7 月,来自 Cypress 文档 (https://docs.cypress.io/faq/questions/using-cypress-faq.html#How-do-I-get-an-element%E2%80%99s-text-contents):
cy.get('div').should(($div) => {
const text = $div.text()
expect(text).to.match(/foo/)
expect(text).to.include('foo')
expect(text).not.to.include('bar')
})
在 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 .WildnessText-kRKTej').invoke('text').then((yourDivText) => {
expect(yourDivText.toString().toLowerCase()).to.contain('wildness');
});
我可能会试试这个:
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')
它会 select 整个 HTML 标签给你。希望对你有帮助...
一行验证:
语法:
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')
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)
})
cy.get("WildnessText-kRKTej").then(function($elem) {
cy.log($elem.text())
})
截至 2020 年 7 月,来自 Cypress 文档 (https://docs.cypress.io/faq/questions/using-cypress-faq.html#How-do-I-get-an-element%E2%80%99s-text-contents):
cy.get('div').should(($div) => {
const text = $div.text()
expect(text).to.match(/foo/)
expect(text).to.include('foo')
expect(text).not.to.include('bar')
})