如何使用jquery在赛普拉斯测试中获取div'text'值

soc*_*way 5 javascript jquery cypress

在Cypress.io测试中使用Jquery,如何从下面的html标记中获取名为“ Wildness”的div“文本”值。我在赛普拉斯测试中尝试过以下方法,但在控制台中抛出未定义的结果。

const $divText = Cypress.$('.ibxudA .WildnessText-kRKTej').text()
         cy.wrap($divText)
           .should("eq", "Wildness")
Run Code Online (Sandbox Code Playgroud)

const $divText = Cypress.$('.ibxudA .WildnessText-kRKTej').text()
         cy.wrap($divText)
           .should("eq", "Wildness")
Run Code Online (Sandbox Code Playgroud)

Mac*_*urt 10

我可以试试这个:

cy.get(".ibxudA").find('.WildnessText-kRKTej').invoke('text').then((text) => {
    expect(text.trim()).equal('Wildness')
});
Run Code Online (Sandbox Code Playgroud)

要么

 cy.get(".ibxudA").find('.WildnessText-kRKTej').should('have.text',"Wildness")
Run Code Online (Sandbox Code Playgroud)

这可能是一个类似的问题:如何使用cypress检查元素的内部文本是否相等?

  • 我拿了你的 HTML 并使用 cypress 对其进行了测试,上面的内容确实有效。如果您有任何问题,请告诉我。 (2认同)

Sou*_*abh 10

一行验证:

句法:

cy.get(<selector>).invoke("text").should("eq", <your string>); 
Run Code Online (Sandbox Code Playgroud)

例子:

cy.get("div.myclass").invoke("text").should("eq", "My Text");
Run Code Online (Sandbox Code Playgroud)

这里,使用以下方法来检索文本。should()用于验证。

cy.get('element').invoke('text')
Run Code Online (Sandbox Code Playgroud)


小智 6

    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)
    })
Run Code Online (Sandbox Code Playgroud)


Sin*_*hak 6

cy.get("WildnessText-kRKTej").then(function($elem) {
     cy.log($elem.text())
})
Run Code Online (Sandbox Code Playgroud)