【生生不息原创】自己动手写Web自动化测试框架4 - 验证Web控件

上次我们讲到了如何控制Web控件,有了上次的基础,我们这一次的东西就会比较简单:如何验证Web控。

我们知道我们测试的目的就是判断被测产品是不是符合要求,如果是手动的测试,就是点到我们要判断的地方,然后用眼睛去判断出现的东西是不是我们想要的。

而自动化就稍微复杂一点。我们需要解决两大问题:一个是操纵电脑去点击,另一个就是去检查是不是我们想要的结果。我们前面的文章可以解决操纵浏览器进行浏览,而接下来我们讲的就是如何判断是否正确了。

不考虑性能测试的话,检查点无非有这么几个:

  • 内容是否正确
  • 样式是否正确

下面我们以实际代码来讲解如何判断。

首先判断一下样式,我们接着上次的代码,判断一下百度首页的文本框的大小是不是我们想要的(这个代码接着上次的得到keyword控件之后,Submit之前):


//验证

if (keyword.getAttribute("size", 0).ToString().Equals("36"))
 
Console.WriteLine("Validation Passed! Size is Correct");

else
 
Console.WriteLine("Validation Failed! Size is wrong");

我们可以看到IHTMLElement有getAttribute方法,这个方法可以得到一个Element里面的Attribute,比如value,type,以及css样式之类的,都可以用这个方法得到,见msdn对这个方法的更详细的讲解。

我们用下面的代码对百度的搜索结果的内容和标题进行判断:


//验证

if(string.Equals(doc.title.Trim(),"百度搜索_colblog.net"))
 
Console.WriteLine("Validation Passed! Title is Corrected");

else
 
Console.WriteLine("Validation Failed! Title is wrong");

if (doc.body.innerText.Contains("生生不息"))
  Console.WriteLine("Validation Passed! Body contains your string");
else
 
Console.WriteLine("Validation Failed! Body do not contain");

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来判断内容。

除了这两个,还有outerHtmlouterText可以使用。

这次的内容比较简单。有的网友问到了一些比较实际的问题,比如如何判断IE是否完成了页面读取,这里预告一下,在我的下一篇博客里,就会提到这个问题。敬请关注。

偶然搜到这个系列文章
看了之后,使我对DotNet和C#开始感兴趣了。

时常关注!

 

貌似如果我现在换工作,根你做的差不多...
============================
真正的猛士,吃核桃不吐核桃皮!

 

恩 看过。。

 

沙发!!!!!

 

感谢您关注我的个人博客!
为了您的更好的阅读和留言,建议您注册用户,这样您可以获得更大的权限,以及更方便的留言。
注册只需要一分钟的时间。但是您需要提供您的邮箱。注册后,密码会自动发到您的邮箱,请在第一次登录时修改。
我承诺不会将您的Email泄露给他人,或者发送垃圾邮件。

用户登录

我的微博

feedsky
抓虾
google reader
my yahoo
newsgator
bloglines
鲜果
哪吒
有道
QQ邮箱
九点
帮看