如何从元素中提取文本,以便在cypress中使用?

卡特
卡特
卡特
订阅者
255
文章
0
评论
测试交流2292字数 136阅读0分27秒阅读模式
摘要我需要在页面上获得两个文本值列表,以便在不同的检查中使用它们。 我通过xpath实现 cy.xpath(“//tbody/tr[position()<;10]/td[6]/sp...

我需要在页面上获得两个文本值列表,以便在不同的检查中使用它们。
我通过xpath实现

    cy.xpath('//tbody/tr[position()<10]/td[6]/span').then(items => {
        cy.wrap(items).as('multipleList')
    })
    cy.xpath('//tbody/tr[position()<21][position()>15]/td[6]/span').then(items => {
        cy.wrap(items).as('commaList')
    })
    cy.get('@multipleList').each((qwer, index) => {..........})
    cy.get('@commaList').each((qwer, index) => {..........})

但在使用第一个列表(@multipleList)后,它显示第二个列表(@commaList)为空的错误。文章源自玩技e族-https://www.playezu.com/179398.html

如果我交换它们,那么@commaList执行正常,但是@multipleList显示相同的错误。文章源自玩技e族-https://www.playezu.com/179398.html 文章源自玩技e族-https://www.playezu.com/179398.html

 
评论  2  访客  2
    • SuchAnIgnorantThingToDo-UKR
      SuchAnIgnorantThingToDo-UKR 9

      正如你所展示的测试,这是不可能的。
      如果您有错误,则是在 .每个() 导致页面更改(第二个列表无效)。
      尝试对命令重新排序
      cy.xpath(‘//tbody/tr[position()<10]/td[6]/span’).as(‘multipleList’)

      cy.get(‘@multipleList’).each((qwer, index) => {……….})

      cy.xpath(‘//tbody/tr[position()<21][position()>15]/td[6]/span’).as(‘commaList’)

      cy.get(‘@commaList’).each((qwer, index) => {……….})

      • Fody
        Fody 9

        只尝试一次组合选择和迭代
        cy.xpath(‘//tbody/tr’).as(‘list’)

        cy.get(‘@list’).each(($rows, rowIndex) => {

        if (rowIndex < 9) {
        const $span = $rows[index].find(‘td:eq(6) span’)

        }

        if (rowIndex > 14 && rowIndex < 20) {
        const $span = $rows[index].find(‘td:eq(6) span’)

        }
        })

      匿名

      发表评论

      匿名网友
      确定

      拖动滑块以完成验证