首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Cypress获取文本的最佳选择器

使用Cypress获取文本的最佳选择器
EN

Stack Overflow用户
提问于 2022-04-25 09:59:43
回答 3查看 291关注 0票数 0

我正在学习Cypress选择器策略的最佳实践。考虑到我希望从Cypress Releases页面获得发布号,下面的HTML片段如下:

代码语言:javascript
复制
<div class="main-content-article-wrapper">
  <article class="main-content-article hide-scroll">
    <h1 class="main-content-title">Changelog</h1>
    <div class="nuxt-content">
      <h2 id="9-5-4">
        <a href="#9-5-4" aria-hidden="true" tabindex="-1"><span class="icon icon-link">
             </span>
          </a>9.5.4
      </h2>

...what将是从9.5.4 <h2>获得9.5.4版本号文本的最佳的、未来的校对选择器。

我的想法是,用于Changelog<h1>文本不太可能改变,但是包含文本的<h2>既不是子版本,也不是兄弟姐妹。

就像这样吗?

代码语言:javascript
复制
cy.get("div.nuxt-content")
  .first("h2").then((txt=>{
   const versionTxt = txt.find("a").text()
   expect(versionTxt).to.equal('9.5.4')

但是,这无法找到目标文本。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-04-25 10:07:16

您的测试失败,因为文本'9.5.4'</a>结束标记之外,而.text()只给您提供innerText。

基于HTML,

代码语言:javascript
复制
cy.get("div.nuxt-content")
  .first("h2").then((txt=>{
   const versionTxt = txt.text()
   expect(versionTxt).to.equal('9.5.4')

代码语言:javascript
复制
cy.get('h2[id="9-5-4"]')
  .invoke('text')
  .should('eq', '9.5.4')
票数 0
EN

Stack Overflow用户

发布于 2022-04-25 10:07:06

您可以使用include.text检查版本号。

代码语言:javascript
复制
cy.get('h2#9-5-4').should('include.text', '9.5.4')
票数 0
EN

Stack Overflow用户

发布于 2022-04-25 13:53:29

根据您的用例,using cy.contains可能是一个可行的选择。它不会使用选择器,但在某些情况下可能是一个更好的解决方案(例如,过于复杂的HTML只有一个特定文本的元素)。

代码语言:javascript
复制
// Just getting the element
cy.contains('9.5.4');
// Validating element exists -- implied by above, but explicit below
cy.contains('9.5.4').should('exist');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71997720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档