上次我们讲到了如何控制Web控件,有了上次的基础,我们这一次的东西就会比较简单:如何验证Web控。
我们知道我们测试的目的就是判断被测产品是不是符合要求,如果是手动的测试,就是点到我们要判断的地方,然后用眼睛去判断出现的东西是不是我们想要的。
而自动化就稍微复杂一点。我们需要解决两大问题:一个是操纵电脑去点击,另一个就是去检查是不是我们想要的结果。我们前面的文章可以解决操纵浏览器进行浏览,而接下来我们讲的就是如何判断是否正确了。
不考虑性能测试的话,检查点无非有这么几个:
* 内容是否正确
* 样式是否正确
下面我们以实际代码来讲解如何判断。
首先判断一下样式,我们接着上次的代码,判断一下百度首页的文本框的大小是不是我们想要的(这个代码接着上次的得到keyword控件之后,Submit之前):
//验证 if (keyword.getAttribute("size", 0).ToString().Equals("36")) else |
我们可以看到IHTMLElement有getAttribute方法,这个方法可以得到一个Element里面的Attribute,比如value,type,以及css样式之类的,都可以用这个方法得到,见msdn对这个方法的更详细的讲解。
我们用下面的代码对百度的搜索结果的内容和标题进行判断:
//验证 if(string.Equals(doc.title.Trim(),"百度搜索_colblog.net")) else if (doc.body.innerText.Contains("生生不息")) |
IE的标题就直接用HtmlDocument的title属性就好,而判断字符就是用到了IHTMLElement的innerText属性,这个属性是我们很常用的属性之一,他会将该Element中显示在IE的字符串返回给我们,另一个相对应的属性就是InnerHtml属性,这个属性会把这个 Element里的所有html代码返回。
比如说一个简单的Dropdownlist,用InnerText就会返回这个List里面每一项的text,而使用InnerHtml就会返回这个list里面的html代码。
在这里我们使用innerText来判断是否有我们想要的文字在里面。
NoticeNotice
注意:innerText和innerHtml属性,是IHTMLELement的属性,所以我们得到的每一个IHTMLElement都可以拿到这样的属性,并不是只有body才可以。这样我们以后就可以用前面的知识得到想要的IHTMLElement元素,然后再使用InnerHtml和 InnerText来判断内容。
除了这两个,还有outerHtml和outerText可以使用。
这次的内容比较简单。下一篇将会提到如何判断IE是否完成了页面读取的问题。
相关链接:
自己动手写Web自动化测试框架(5):判断浏览器是否加载完成