【问题标题】:Cannot verify text which contains diacritics无法验证包含变音符号的文本
【发布时间】:2014-01-14 14:45:06
【问题描述】:

我在 java 中使用 selenium webdriver 并尝试验证我在页面上找到的一些文本。 文本包含 ţ ă 等变音符号。

我遇到的问题是当我使用 maven 从命令行运行测试时;我需要这样做,因为我会将它们集成到 Jenkins 中。

所以我的测试中有一个简单的断言:

Assert.assertEquals("some text with ţ", driver.findElement(text).getText());

失败了,我不知道什么是使这项工作的正确方法。

我已经读过Java中字符串的默认编码是UTF-16,所以当使用getText从页面中获取文本时,字符串已经被编码,我想这意味着字符丢失了。另一方面,我不知道比较文本本身“带有 ţ 的某些文本”是否可以解释。

有没有人遇到过类似的问题?你是怎么解决的?

谢谢

【问题讨论】:

  • 要找出driver.findElement(text).getText() 是什么,我会将其作为错误文本的一部分。 Assert.assertEquals("some text with ţ", driver.findElement(text).getText(), "Thext was :'"+driver.findElement(text).getText()+"'");这可能会让你知道问题出在哪里。

标签: java selenium-webdriver


【解决方案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 中明确配置编码(编译器插件上的设置)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2011-12-02
    • 2016-04-26
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2011-03-29
    相关资源
    最近更新 更多