【问题标题】:Extracting parts of a text in Cypress在赛普拉斯中提取部分文本
【发布时间】:2019-05-20 15:18:57
【问题描述】:

我是赛普拉斯的新手,我需要从我的应用程序中提取文本的动态部分。

<body>
<div>Hello World greeting number 9123</div>
</body>

在这个例子中,我需要从 div 中提取 9123,以便稍后在我的测试中使用。知道我应该怎么做吗?

【问题讨论】:

    标签: javascript testing cypress


    【解决方案1】:

    首先,您可以尝试使用“invoke”方法从div 获取full text,并在javascript 中使用RegExpmatch 从文本中获取数字:

    cy.get('div').invoke('text')
    .then((text)=>{ 
        var fullText = text;
        var pattern = /[0-9]+/g;
        var number = fullText.match(pattern);
        console.log(number);
       })
    

    【讨论】:

    • 返回的数字将是一个字符串。将其转换为整数,parseInt 或 cypress 是否提供了一些更好的方法是什么?
    【解决方案2】:

    我不得不做出一些假设: 1.要检索的号码总是在行尾 2. 包含数字的句子总是用空格分隔。 如果这些假设是正确的,这应该可行:

    let divNumber = ''
        cy.get('div')
          .then(number => {
            divNumber = number
              .text()
              .split(' ')
              .pop()
            cy.get('div')
              .should('contain', divNumber)
    

    【讨论】:

    • 你的两个假设都是正确的,很抱歉没有具体说明。非常感谢!
    猜你喜欢
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多