关闭

【QTP编码小知识 五 “山寨”WebElement】

发表于:2009-2-23 14:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:假装不在    来源:51Testing博客

  前言

  随着web开发技术变得越来越复杂,使QTP在处理web对象时也变得不那么容易,但是很多时候还是能通过调整对象属性的技巧,达到正确识别我们想要的对象(Web元素)。这同时也就提出了更高的要求,要能够了解一些Web开发的知识,分析测试页面的源程序。当然光分析仍然是有些马后炮,更好的应该是在界面开发时就为以后自动化测试做准备了。引自 逍遥客

  确实在QTP的对象识别过程中,让QTP用户尤为头疼的就是对象识别。而当QTP识别不了对象时候,就不负责任的丢了一个"WebElement"给大家,而每个人都觉得这不是我想要的结果。哪么如何更好的把这个WebElement做出我们想要的效果与操作呢?

  一、你想对它做什么

  在这里简单的举www.163.com 邮箱的文本域输入框为例。

  许多的QTP用户在做完了有教程的飞机订票系统的自动化脚本后,跃跃欲试的想找个Web实例开刀,而很多人选择的是163邮箱,但是可以说,这并不是个很好的选择。就在很兴奋的把163的登陆脚本录制好了,也做了参数修改,但是到问题却来了!录制163文本入却无效,而Spy出来的又是一个 WebElement。或者是QTP捕获不到这个操作?所以就往对象库里面添加了这个WebElement。接着就是流利的代码敲击:

  Browser("网易电子邮箱 - 极速3.0正式版").Page("网易电子邮箱 - 极速3.0正式版").Frame("HtmlEditor").WebElement("WebElement").set "山寨"

  但实际上你却什么也做不了,因为并不存在这个set的方法。

  二、WebElement的主要方法

  WebElement的主要方法包括了 Check,Click,FireEvent,GetROProperty,GetTOProperties,GetTOProperty,Output,SetTOProperty,Submit,WaitProperty 等等。很明显就是因为WebElement在对其它对象方法的支持先天不足才会让用户对它会如此的恐惧与厌恶。

  三、如何把它“山寨”

  这个问题在先前的51testing上,大家的解决方法是通过Sendkeys方法去解决这个问题,虽然问题是解决了,但是会让人觉得这不是我们真的想要的,毕竟这是“低级录制”才走的路线。

  1)WebElement的“后面”是什么?

  大家打开QTP,并且对163邮箱做简单的录制。到了在对邮箱内容录入时候,把QTP停止下来。接着,大家就打开对象库。以下有2个操作:

  a)点击添加,转到163页面,直接点击文本域。

  b)点击添加,转到163页面,按住Ctrl,点击文本域,放开Ctrl,点击文本域。

  此时你却会发现在对象库里面有2个WebElement类型的对象,但他们却是有区别的。他们的节点分别是Body(指定文档主体的开始和结束)与 Div(指定渲染 HTML 的容器)。而我们分别查看这2个对象的innerhtml,分别是 “<DIV><BR><BR></DIV>”,“<BR><BR>”(回车)。而我们可以猜测出第2个WebElement是第1个元素节点里面,也就是在Body节点里面,如果读者想要验证,可以在读完下面的方法后,自己试试如何验证子父节点的关系。

版权声明:原创作品,转载时请务必以超链接形式标明文章原始出处作者信息本声明,否则将追究法律责任。

本文出自假装不在的51Testing软件测试博客:http://www.51testing.com/?174770

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号