赛普拉斯:如何比较与从表中读出的字符串/文本连接的不同数据类型
Posted
技术标签:
【中文标题】赛普拉斯:如何比较与从表中读出的字符串/文本连接的不同数据类型【英文标题】:Cypress: how to compare diffrent datatypes concatinated with String/ text read out from tables 【发布时间】:2021-12-21 09:53:27 【问题描述】:我想比较与文本混合的双值 (75.999):75.999 & 编辑
我从表中获取了这些值并尝试将其解析为字符串,以替换除数字之外的所有符号和字符,但没有任何效果。
html-SNIPET:
<td data-cy="project.chanceOrder" class="text-right editableRow" aria-label="project.chanceOrder: NCDd_3wB0UC4Ud30l6iP">
<div class="ng-star-inserted">
<span class="ng-star-inserted">75.999 % </span>
<!---->
<a class="inlineEditLink" title="Bearbeiten">
<em class="material-icons">edit</em>
</a>
</div>
<!---->
<!---->
</td>
赛普拉斯代码(不工作):
cy.get('[data-cy="projectList"]')
.find('[data-cy="project.chanceOrder"]')
.each((MyElement, MyIndex, MyContentOfArray) =>
if(MyIndex == 0)
// NOT WORKING
expect(parseFloat(MyElement.text().replace(/[^a-zA-Z0-9 ]/g, ""))).to.equal(project.chanceOrder.replace(/[^a-zA-Z0-9 ]/g, ""))
// NOT WORKING
// let tmp = MyElement.text().replace(/[^a-zA-Z0-9 ]/g, "")
// let OriginValueToCompare = '' + project.chanceOrder
// let tmpStr = OriginValueToCompare.replace(/[^a-zA-Z0-9 ]/g, "")
// expect(tmp).to.equal(tmpStr)
// NOT WORKING
// expect(MyElement.text().replace(/[^a-zA-Z0-9 ]/g, "")).to.equal(project.chanceOrder.replace(/[^a-zA-Z0-9 ]/g, ""))
// NOT WORKING
expect(MyElement.text()).to.equal('' + project.chanceOrder+" % edit")
// NOT WORKING
let tmp1 = "" + MyElement.text()
let tmp2 = "" + project.chanceOrder +" % edit"
if(tmp1 == tmp2)
cy.log("=============== YES =====================================")
// NOT WORKING
cy.wrap(tmp1).should('eq', tmp2);
// NOT WORKING
cy.wrap(tmp1).should('have.text', tmp2);
)
错误消息(总是):
预期 75.999 % 编辑等于 75.999 % 编辑
如果我将 cypress Log 的输出与 notepad++ 进行比较
75.999 % 编辑 75.999 % 编辑
它总是说这两个文件匹配。
我做错了什么?
【问题讨论】:
【参考方案1】:你可以用这个:
expect(MyElement.text()).to.contain('75.999')
这将检查字符串75.999
是否存在于您提取的文本中。
【讨论】:
以上是关于赛普拉斯:如何比较与从表中读出的字符串/文本连接的不同数据类型的主要内容,如果未能解决你的问题,请参考以下文章