QTP自传之web常用对象
随着科技的进步,“下载-安装-运行”这经典的三步曲已离我们远去。web应用的高速发展,改变了我们的思维和生活习惯,同时也使web方面的自动化测试越来越重要。今天,介绍一下我对web对象的识别,为以后的对象库编程打下基础。
Browser
Browser对象即浏览器对象,例如IE,FF,Chrome。Browser对象是所有web对象的父级对象,是金字塔的顶端,我在Description properties中对它也没有什么约束。使用Object Spy查看Browser对象
Properties中可以看到浏览器的相关属性,因为我现在测试的系统需要测试IE6的兼容性,大家看到我的IE版本还是6-_-! Operations列出了Browser对象可以使用的方法,下面介绍几个常用的方法(先将Browser对象加入对象库)。
1.SystemUtil.Run,打开浏览器,具体使用方式可以F1查看。
2.Sync,同步方法,意思是等待浏览器完全打开再进行下一步的操作。
3.Navigate,打开URL。
4.Close,关闭浏览器。
1 Systemutil.Run "iexplore.exe" 2 Browser("Browser").Sync 3 Browser("Browser").Navigate ("http://localhost/qtp/demo-login.php") 4 Browser("Browser").Close
tips:打开指定网址还可以用Systemutil.Run方法,上述代码可以简化为
1 Systemutil.Run "iexplore.exe","http://localhost/qtp/demo-login.php" 2 Browser("Browser").Close
Page
Page对象一般是Browser的子对象,每一个页面就是一个Page对象,Page对象的Name值是HTML标签中Title的值。Page对象的重要方法有Exist、Sync、Childobjects等。实际工作中对Browser和Page的操作很少,大多是一些打开关闭和同步的操作。
WebEdit
网页中的输入框可以被我识别为WebEdit对象,Operations里依然有很多方法,大家可以自行查看。
1 <html> 2 <head> 3 <title>web对象演示</title> 4 <meta http-equiv="Content-type" content="text/html" charset="utf-8"> 5 <style> 6 .content{ 7 width:260px; 8 height:30px; 9 } 10 .edit{11 width:170px; 12 } 13 span{14 width:70px; 15 } 16 </style> 17 </head> 18 <body> 19 <form action="" method="POST"> 20 <div class="content"> 21 <span>text</span><input type="text" name="web" class="edit"> 22 </div> 23 <div class="content"> 24 <span>password</span><input type="password" name="web" class="edit"> 25 </div> 26 <div class="content"> 27 <span>textarea</span><textarea rows="5" cols="20" class="edit"></textarea> 28 </div> 29 </form> 30 </body> 31 </html>
WebEdit中使用较多的set和GetROProperty方法,set用来设置输入框中的值,GetROProperty获取运行时对象的值。
Browser("web对象演示").Page("web对象演示").WebEdit("text").Set "111"Browser("web对象演示").Page("web对象演示").WebEdit("password").Set "222"Browser("web对象演示").Page("web对象演示").WebEdit("textarea").Set "333"a=Browser("web对象演示").Page("web对象演示").WebEdit("text").GetROProperty("value")b=Browser("web对象演示").Page("web对象演示").WebEdit("password").GetROProperty("value")c=Browser("web对象演示").Page("web对象演示").WebEdit("textarea").GetROProperty("value")msgbox "text="+a+";password="+b+";textarea="+c
运行后输出如下
Link
顾名思义,Link是网页中的链接,我们在刚才的网页中加入如下代码
<div class="content"><span>link</span><a href="http://www.baidu.com">点这里跳转到百度</a> </div>
对Link对象的操作主要有Click、CheckProperty。CheckProperty方法是检查Link对象的url属性是否正确,click就是点击操作,运行下方代码,页面会自动跳转至百度。
'检查url属性是否正确 Browser("web对象演示").Page("web对象演示").Link("点这里跳转到百度")_ .CheckProperty "url","http://www.baidu.com/" '如果正确执行Click方法 If Reporter.RunStatus=Pass ThenBrowser("web对象演示").Page("web对象演示").Link("点这里跳转到百度").Click End If
WebButton
WebButton对象就是页面中各式各样的按钮啦,主要操作就是Click:)
WebElement
WebElement主要是页面中的div,span,p等标签包涵的内容,一般用来验证数据的正确性,例如上面例子中的span标签。
If Browser("web对象演示").Page("web对象演示")_ .WebElement("password").GetROProperty("innerhtml")="password" thenmsgbox "ok" end if
WebList
我将页面中的下拉框识别为WebList对象,在我们的演示网页中加入以下代码。
1 <div class="content"> 2 <span>select</span> 3 <select> 4 <option value ="php">php</option> 5 <option value ="java">java</option> 6 <option value="vbs">vbs</option> 7 <option value="python">python</option> 8 </select> 9 </div>
注意Properties中的all items属性,它包括了list中的所有选项,选择WebList中的选项用的是Select方法,用法和set方法一样。
WebRadioGroup && WebCheckBox
WebRadioGroup单选框对象,WebCheckBox复选框对象,加入如下代码。
1 <div class="content"> 2 <span>radio</span> 3 <input type="radio" name="sex" value="boy" checked="checked">男 4 <input type="radio" name="sex" value="girl">女 5 </div> 6 <div class="content"> 7 <span>checkbox</span> 8 <input type="checkbox" name="swim" value="swim" id="swim">游泳 9 <input type="checkbox" name="game" value="game" id="game">游戏 10 <input type="checkbox" name="read" value="read" id="read">阅读 11 </div>
选择单选框和复选框的代码如下
Browser("web对象演示").Page("web对象演示").WebRadioGroup("sex").Select "girl" Browser("web对象演示").Page("web对象演示").WebCheckBox("read").Set "ON" Browser("web对象演示").Page("web对象演示").WebCheckBox("swim").Set "ON"
WebTable
WebTable对象是网页控件中的重点与难点,在网页布局中table一般用于数据的展示,这也是我们测试的重点所在。老样子,现在网页中创建table控件,加入以下代码。
<table><tr><td>text1</td><td>textarea1</td><td>sex1</td><td>hobby1</td></tr><tr><td>text2</td><td>textarea2</td><td>sex2</td><td>hobby2</td></tr><tr><td>text3</td><td>textarea3</td><td>sex3</td><td>hobby3</td></tr> </table>
并在style标签中加入
table{ border: 1px solid black; padding:0; margin:0 auto; border-collapse: collapse; } td{ border: 1px solid black; font-size:12px; padding: 3px 3px 3px 8px; color: black; }
从图中可以看到,我将td中识别为WebElement对象,将td的父级元素即table识别为WebTable对象。WebTable对象的方法有很多,这里列举几个常用的方法,参考下面的代码。
1 '获取列数 2 col=Browser("web对象演示").Page("web对象演示").WebTable("table").ColumnCount(1) 3 '获取行数 4 row=Browser("web对象演示").Page("web对象演示").WebTable("table").RowCount 5 '获取指定单元格的值 6 info=Browser("web对象演示").Page("web对象演示").WebTable("table").GetCellData(1,1) 7 '得到指定单元格内的测试对象的数目 8 Dim obj 9 obj=Browser("web对象演示").Page("web对象演示").WebTable("table").ChildItemCount(1,1,"WebEdit") 10 msgbox "列数="+CStr(col)+" 行数="+CStr(row)+" 第一行第一列="+info+_ 11 "有"+CStr(obj)+"个WebEdit对象"
运行结果如下
对于WebTable对象大部分情况下使用描述性编程,至于什么是描述性编程,那又是另一个故事了。
转载于:https://www.cnblogs.com/michaelle/p/4023304.html
QTP自传之web常用对象相关推荐
- QTP之web常用对象
web对象是我做自动化以来最早学习,最早接触的.对现在而言也是最熟悉不过的了,但是为了以后更稳健的前进,对基础的东西搞扎实,相信以后的路会顺畅许多,下边简单汇总下web的常用几类对象: Browser ...
- 常用对象操作:(4)
常用对象操作:(4) 1. Replication Controller与Replica Set 1.1 使用Replication Controller.Replica Set 管理Pod 前面我们 ...
- DOM_05之DOM、BOM常用对象
1.HTML DOM常用对象之Table:①创建:createTHead():createTBody():createTFoot():②删除:deleteTHead():deleteTFoot():③ ...
- Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析
加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景 在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链 ...
- 【JavaScript】JS的变量、数组、计算器案例、函数、类、常用对象的方法
目录 01-js-js的声明和引入 <!DOCTYPE html> <html><head><meta charset="UTF-8"&g ...
- C#-常用对象-思维导图
C#-常用对象-思维导图 链接:http://pan.baidu.com/s/1jHNgS78 密码:3i74 如有错误,请告知我! 转载于:https://www.cnblogs.com/welov ...
- httpservletrequest 设置请求头_请求和常用对象
## 一.主要内容 ![](https://raw.githubusercontent.com/Cushier/picture-java/master/middle/20190712150414.pn ...
- hashset java api_java常用对象API中集合框架之HashSet
之前在<java常用对象API之集合框架>这篇文章中已经将所有集合框架做了一个总体的大纲陈列,并阐述了所有Collection接口下的子接口和类的作用解释,那么接下来的文章智言还是想把里面 ...
- java里上下文对象,java-在百里香模板中的Web上下文对象上发出...
我试图在thymeleaf 3.0.3和Spring Boot 1.5.1的模板中调用Web上下文对象上的方法,例如#request和#response. 我不断收到这样的错误: org.spring ...
最新文章
- 线性回归(y=ax+b)
- MFC socket网络编程(流程示例)
- 删除未使用的引用 | Visual Studio 2019(16.10)新功能试用
- php 输出json utf8,php json_encode utf-8中文问题
- 识别Gradle约定
- Socket编程 涵盖代码和函数参数介绍
- 【java】输入球的半径,求出其体积
- mysql ,show slave status详解
- 在 Cloudera Data Flow 上运行你的第一个 Flink 例子
- golang清空切片
- 【语音分析】基于matlab短时自相关基音周期检测+LPC预测增益计算【含Matlab源码 1517期】
- MStar点屏(LVDS接口屏)
- 基于51单片机的扫地小车,扫地机器人设计。 有原理图,程序代码,原文
- 计算机驱动有必要更新,我们平时电脑的驱动需要一直更新吗?教你如何正确的维护你的驱动...
- 使用formality的技巧
- 过敏性鼻炎的治疗和保养
- js浏览器兼容问题总结及解决办法
- 查看僵尸进程并杀掉僵尸进程
- secret-performance-desktop - 基于javafx的桌面个性化工具
- 【daisy-framework】MySQL 开发规范
热门文章
- 动画原理——绘制正弦函数环绕运动椭圆运动
- GridView生成序号
- Asp.net2.0工具包AjaxControlToolkit下载和安装
- 史迪仔的原型_星际宝贝三个版本对比,莉罗抛弃史迪仔,童年真的回不去了
- c语言定时器作用,Go语言定时器实现原理及作用
- ie浏览器网页版进入_IE浏览器打开网页提示无法打开Internet站点的解决办法
- 七夕(情人节)表白女朋友,程序员应该如何装一波13
- 【APICloud系列|37】百度开放平台应用+,提升用户下载量操作步骤
- java 计时器_Java多线程并发容器之并发倒计时器
- 计算机信息技术为教育带来的变化,信息技术对课堂教学带来的变化