Selenium Web Driver 和多语言

5
我可以帮忙翻译!以下是您需要的内容:

我使用Selenium Webdriver + Java。当我想通过XPath获取一些数据/文本时,例如

driver.findElement(By.xpath(".//table[3]/tbody/tr/td/table[1]/tr[1]/td[1]")).getText()

如果我想获得俄语文本,它会返回一串充满问号符号的字符串,而不是文本。英语则正常工作。有什么想法吗? 谢谢!


可能是你运行测试的方式有问题。使用的编码是什么? - aimbire
默认情况下我使用UTF-8。例如:def xml = new MarkupBuilder(new FileWriter(file)); xml.mkp.xmlDeclaration(version: "1.0", encoding: "utf-8"); - EK.
你尝试过使用“ISO-8859-1”吗? - aimbire
我发现它出现在文件保存之前。我不知道如何更改findElement().getText()函数的编码。 - EK.
你是通过TestNG、JUnit或类似的工具运行测试吗?我怀疑当你开始运行它们时需要更改编码方式。当我使用UTF-8运行我的测试时,也遇到了类似的问题。 - aimbire
我遇到了同样的问题... 当读取俄语、韩语或中文等语言的文本时,getText() 返回 ????。有什么解决办法吗? - jsherk
1个回答

2
也许您可以在element.getText()之后更改编码。
示例
String tmp = elem.getText();
String utfString = new String(tmp.getBytes(Charset.forName("utf-8")));

我使用java.nio.Charset设置字符集;
希望对您有帮助。

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