假设我们编写了一个脚本来断言HTML控件的“InnerText”属性。 所以我们断言“立即登录”并通过。
现在,在浏览器上显示它显示为
“登录
现在“
Still CodedUI会通过它。
有什么方法可以检查吗?
答案 0 :(得分:1)
如果原始断言检查字符串是Login Now
但网页已更改,以便浏览器显示两行:
Login
Now
然后断言将失败,因为字符串是Login\r\nNow
。 (从问题来看,字符串也可能有一些空格,因此可能是Login \r\n Now
。)
至少有两种处理方式。
首先你可以做两个断言。一个内部文本包含 Login
,另一个内容包含Now
。但这会传递字符串Now Login
也You must Login Now
,这可能是错误的。
另一种方法是读取内部文本值,删除任何前导和训练空间,将任何插入的空白空间转换为单个空格,然后最后执行断言。如果原始断言类似于
Assert.Equals(innerText, "Login Now");
然后您可以用以下内容替换它:
Assert.Equals(Regex.Replace(innerText.Trim(), "\\s+", " "), "Login Now");