无法验证包含变音符号的文本

3
我正在使用Java的Selenium WebDriver来验证页面上的一些文本内容,其中包含像ţ ă等附加符号。
但是,我在使用Maven从命令行运行我的测试时遇到了问题;我需要这样做,因为我将把它们集成到Jenkins中。
因此,在我的测试中,我有一个简单的断言:
Assert.assertEquals("some text with ţ", driver.findElement(text).getText());

代码出现错误,而我不知道正确的解决方法。

据我所知,Java中字符串的默认编码为UTF-16,因此当使用getText从页面获取文本时,字符串已经被编码,我想这意味着字符已经丢失。另一方面,我也不知道比较文本本身是否能够正确解释 "some text with ţ"。

有人遇到过类似的问题吗?你们是如何解决这些问题的?

谢谢!


为了找出driver.findElement(text).getText()是什么,我会将其作为错误文本的一部分。Assert.assertEquals("some text with ţ", driver.findElement(text).getText(), "Thext was :'"+driver.findElement(text).getText()+"'");这可能会给出问题所在的线索。 - MrSmith42
1个回答

1
"Maven甚至针对您的错误发出了警告:"
WARNING: character encoding not set. Using the platform default encoding, i.e., the 
build is platform-dependent!

或类似信息。

解决方法是:

  1. 确保将Java源代码文件保存为UTF-8编码;
  2. 确保在pom.xml中明确配置编码(编译插件的设置)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接