【问题标题】:get nth text variable within a specific class/id in html using cypress使用 cypress 在 html 中的特定类/id 中获取第 n 个文本变量
【发布时间】:2020-09-24 06:25:45
【问题描述】:

我是 cypress 的新手,最近我不得不使用 cypress 在网站中提取文本变量。现在,我终于弄清楚了如何在 html 中提取特定类/id 的文本变量。但是,我找不到正确的方法来提取 类/id 中的确切第 n 个元素

例如,这是我的html:

             <div class ="main-menu-wrapper align-self-stretch align-items-stretch" id="navbarCollaspse">
                <ul region="header" class="clearfix nav navbar-nav navbar-nav-center mx-auto">
                  
                    <li class="nav-item menu-item--expanded dropdown">
                     <a href="https://example/subwebsite/aaaaa" 
                      class="nav-link dropdown-toggle main-menu-1" data-toggle="dropdown" aria-expanded="false" aria-haspopup="true"> 
                       TEXTAAAAA </a>
            
                    <li class="nav-item menu-item--expanded dropdown">
                     <a href="https://example/subwebsite/bbbbb" 
                      class="nav-link dropdown-toggle main-menu-2" data-toggle="dropdown" 
                      aria-expanded="false" aria-haspopup="true"> 
                      TEXTBBBBBB </a>
        
                     <li class="nav-item menu-item--expanded dropdown">
                     <a href="https://example/subwebsite/ccccc" 
                      class="nav-link dropdown-toggle main-menu-3" data-toggle="dropdown" aria- 
 expanded="false" aria-haspopup="true"> 
                TEXTCCCCCC </a>
     </div>

这是我的 cypress javascript 代码:

cy.visit('https://example/website')
    cy.get([class="clearfix nav navbar-nav navbar-nav-center mx-auto"]).each(($el) => {
      cy.wrap($el).invoke('text')
        .then(text => {
     //do something with the text
    //Here, I could get TEXTAAAAA TEXTBBBBBB TEXTCCCCCC orderly, however, i want to extract only TEXTBBBBBB
        })
    })

现在,当我cy.get([class="clearfix nav navbar-nav navbar-nav-center mx-auto"]).each($el) 时,我可以得到TEXTAAAAA TEXTBBBBBB TEXTCCCCCC。但是,现在,我只想获取类中的第二个元素,在本例中为TEXTBBBBBB。我试图引用from here 的方式,但赛普拉斯找不到路径。 关于如何使用 cypress 在类中获取特定元素的任何想法都会有很大帮助!谢谢一百万!

【问题讨论】:

    标签: html jquery cypress


    【解决方案1】:

    如果你想提取特定元素的文本,你可以使用索引值来完成,它应该看起来像这样。这里我们提取第二个元素。

    cy.get('locator').each(($el, index) => {
       if (index == 1) {
          cy.wrap($el).invoke('text').then((text) => {
             //do something with the text
          })
       }
    })
    

    【讨论】:

    • 感谢您的建议,但实际上我需要一次提取多个网站(它们的结构相同,但内容不同),因此我无法对文本内容进行硬编码以提取元素.有没有其他可能的方式来达到那个元素?
    • 所以对于每个网站,您只需要提取第二个元素的文本,文本可以是任何内容?
    • @AlapanDas 为什么不使用.eq(2) 而不是each
    猜你喜欢
    • 2017-08-16
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 2021-11-05
    相关资源
    最近更新 更多