【发布时间】:2019-05-20 15:18:57
【问题描述】:
我是赛普拉斯的新手,我需要从我的应用程序中提取文本的动态部分。
<body>
<div>Hello World greeting number 9123</div>
</body>
在这个例子中,我需要从 div 中提取 9123,以便稍后在我的测试中使用。知道我应该怎么做吗?
【问题讨论】:
标签: javascript testing cypress
我是赛普拉斯的新手,我需要从我的应用程序中提取文本的动态部分。
<body>
<div>Hello World greeting number 9123</div>
</body>
在这个例子中,我需要从 div 中提取 9123,以便稍后在我的测试中使用。知道我应该怎么做吗?
【问题讨论】:
标签: javascript testing cypress
首先,您可以尝试使用“invoke”方法从div 获取full text,并在javascript 中使用RegExp 和match 从文本中获取数字:
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 是否提供了一些更好的方法是什么?
我不得不做出一些假设: 1.要检索的号码总是在行尾 2. 包含数字的句子总是用空格分隔。 如果这些假设是正确的,这应该可行:
let divNumber = ''
cy.get('div')
.then(number => {
divNumber = number
.text()
.split(' ')
.pop()
cy.get('div')
.should('contain', divNumber)
【讨论】: