我在selenium自动化中执行字符串比较。对于字段,我从UI获取以下值:
实际价值:机构投资者和咨询公司-加拿大
和相同的值,我在测试中存储为字符串期望值。
期望值:机构投资者和咨询公司-加拿大
当我对此执行测试is方法时,它失败了,并显示以下错误消息:
Actual Result : Institutional Investors & Consultants — Canada
Expected Result : Institutional Investors & Consultants — Canada我尝试使用以下命令删除这些特殊字符:
replaceAll("â€", "-")但由于相同的消息而失败。
尝试在string的构造函数中设置编码:
subject = new String(subject.getBytes("UTF-8"), "UTF-8");这也不起作用。
我有apache通用的lang3和jsoup。如果有人知道任何解决这个问题的好方法,请让我知道,因为首先我想避免使用正则表达式并使用标准库。
代码:
if(loc contains ("Canada")) {
Assert.assertEquals("somelocator.getText().trim()", "ExpectedValue");
}此外,简单的println打印为:
机构投资者和顾问“加拿大机构投资者和咨询公司-加拿大。
当我在不同的控制台中打印它时,它打印得很好。
发布于 2021-10-28 09:14:52
您的第二个代码片段可能失败了,因为您似乎忘记了在repaceAll调用中包含“sign in the repaceAll call:Here您看到有不同的可能性:
replaceAll('—', '—')
replaceAll('–', '–')
replaceAll('•', '-')不同长度的连字符具有不同的编码,因此不会进行相等的比较。
发布于 2021-10-28 08:54:31
该问题已在集成开发环境(Intelij)->中修复
它也需要从那里单独更改文件。
中提到的3个位置添加编码到pom.xml文件中
https://stackoverflow.com/questions/69736164
复制相似问题