字符串和Selenium文本之间的AssertEqual - 为什么会失败?

时间:2017-05-24 12:15:05

标签: c# string selenium whitespace assert

我有XML格式的测试数据,以及WebElement(Selenium)的Text或Value。

我比较两个值并且Assert失败。最初XML空白(由于格式化)是明显的问题,但删除它们后,我仍然得到以下结果。 我已经在Word中粘贴了错误日志,并且在间距字符方面没有任何视觉差异。

Output of Assert

修改 进一步调查显示Assert在换行符上失败。 复制到Word时,此字符后面的空格在预期结果和实际结果之间是不同的。

编辑2: 十进制的十六进制代码是13对10,因此它们是不同的字符。 问题是如何将一个转换为另一个?

2 个答案:

答案 0 :(得分:1)

我相信你应该指明正确的CultureInfo。例如:

Assert.AreEqual(s1, s2, false, new CultureInfo("de-DE"));

此外,您可以尝试规范化字符串行结尾:   Normalize newlines in C#

答案 1 :(得分:0)

正在比较的字符串混合了换行符(十进制= 10,\n)和回车符(十进制= 13,\r)。

我认为最简单的解决方案是规范化字符串:

yourString.Replace("\r\n", "\n").Replace('\r', '\n');