Coded UI能否断言迷失方向的文本?

时间:2017-01-17 04:48:25

标签: coded-ui-tests

假设我们编写了一个脚本来断言HTML控件的“InnerText”属性。 所以我们断言“立即登录”并通过。

现在,在浏览器上显示它显示为

  

“登录
                                                 现在“

Still CodedUI会通过它。

有什么方法可以检查吗?

1 个答案:

答案 0 :(得分:1)

如果原始断言检查字符串是Login Now但网页已更改,以便浏览器显示两行:

Login
Now

然后断言将失败,因为字符串是Login\r\nNow。 (从问题来看,字符串也可能有一些空格,因此可能是Login \r\n Now。)

至少有两种处理方式。

首先你可以做两个断言。一个内部文本包含 Login,另一个内容包含Now。但这会传递字符串Now LoginYou must Login Now,这可能是错误的。

另一种方法是读取内部文本值,删除任何前导和训练空间,将任何插入的空白空间转换为单个空格,然后最后执行断言。如果原始断言类似于

Assert.Equals(innerText, "Login Now");

然后您可以用以下内容替换它:

Assert.Equals(Regex.Replace(innerText.Trim(), "\\s+", " "), "Login Now");