查找元素:不同的语法 -> 不同的结果 - 需要解释
Finding elements: different syntax -> different results - Explanation needed
当我使用时:
cy.get('b').contains('xdz') // find 1 element
但是当我使用时:
cy.get('b:contains("xdz")') // find 2 elements
有人可以解释一下有什么区别吗?
contains('xdz')
是一个赛普拉斯命令,它总是只产生包含文本的第一个元素。您可以从 Github Thread.
阅读更多相关信息
:contains("xdz")
是一个 Jquery 命令,它 returns 所有包含文本的元素。您可以从 Jquery Docs.
阅读更多相关信息
cy.get('b').contains('xdz')
正在调用 Cypress 命令,该命令仅用于 return 单个元素。这是特意设计的,以便您可以按文本内容缩小搜索范围。
cy.get('b:contains("xdz")')
使用 jquery pseudo-selector :contains()
来测试元素 <b>
内的文本,旨在 return 所有匹配元素。
Pseudo-selectors 是 CSS 选择器语法的扩展,在选择期间应用 jQuery 方法。在这种情况下,:contains(sometext)
对于 $el.text().contains('sometext')
是 shorthand。因为它是选择器的一部分,它 return 包含所有匹配元素。
了解 jquery 选择器的变体是值得的,如本例所示 - 它可以在不同情况下为您提供不同的结果。
当我使用时:
cy.get('b').contains('xdz') // find 1 element
但是当我使用时:
cy.get('b:contains("xdz")') // find 2 elements
有人可以解释一下有什么区别吗?
contains('xdz')
是一个赛普拉斯命令,它总是只产生包含文本的第一个元素。您可以从 Github Thread.
:contains("xdz")
是一个 Jquery 命令,它 returns 所有包含文本的元素。您可以从 Jquery Docs.
cy.get('b').contains('xdz')
正在调用 Cypress 命令,该命令仅用于 return 单个元素。这是特意设计的,以便您可以按文本内容缩小搜索范围。
cy.get('b:contains("xdz")')
使用 jquery pseudo-selector :contains()
来测试元素 <b>
内的文本,旨在 return 所有匹配元素。
Pseudo-selectors 是 CSS 选择器语法的扩展,在选择期间应用 jQuery 方法。在这种情况下,:contains(sometext)
对于 $el.text().contains('sometext')
是 shorthand。因为它是选择器的一部分,它 return 包含所有匹配元素。
了解 jquery 选择器的变体是值得的,如本例所示 - 它可以在不同情况下为您提供不同的结果。