QTP自动化测试培训:描述编程之WebElement

 
通过描述性编程技术,来描述出来输入框:
set po=browser("creationtime:=0").page("micclass:=page") 
set desc=description.creatre()
odesc("micclass").value="WebEdit"
odesc("html tag").value="input"
…………
 
在html中输入框的html tag除了input其实还有textarea等
<textarea rows="3" cols="20">
内容.........内容
</textarea>
 
description的item属性支持正则表达式,默认开关打开
odesc.Item.RegularExpression=true
因此,可以修改成:
odesc("micclass").value="WebEdit"
odesc.Item.RegularExpression=true
odesc("html tag").value="input|textarea",
这样就支持input和testarea两种文本框的形式
 
但在一些js框架中,输入框的tag就不至于这些了,可能就是div,而且用qtp识别出来就是webelement,而并非webedit,我们知道,webedit和webelement属于继承关系,可以修改成这样
 
set desc=description.creatre()
‘odesc.Item.RegularExpression=true
odesc("micclass").value="WebElement"  
odesc("html tag").value="input|textarea|div"
 
完整脚本
‘文本框输入
function sendkeys(propertyname,propertyvalue,value)
      set po=browser("creationtime:=0").page("micclass:=page") 
      ‘po也可以写为方法的参数
      set desc=description.creatre()
     odesc("micclass").value="WebElement"
      odesc("html tag").value="input|textarea|div"   
      '把所需要的tag标记都可以写进去
      odesc(propertyname).value=propertyvalue
     set child=po.childobject(odesc)
      ochild(0).set value
      ’多个元素时,index也可以作为参数
end function
 
这样一来,只需要封装操作类型,而对于元素的类型,则都可以用WebElement来代替,然后html tag则使用正则表达式符号“|”来匹配任意tag的其中的一个
调用:
call sendkeys("xpath","//input[@name='username']","test001")
 
可以看出,所有网页元素,它的micclass其实都可以写成webelement。
如果qtp识别不出的web元素,可以通过其他的辅助工具来帮助来识别

QTP自动化测试培训:描述编程之WebElement的更多相关文章

  1. 自动化测试培训:设计和实现分布式QTP调用

    自动化测试培训:设计和实现分布式QTP调用   自动化测试的过程中一个很核心的需求就是执行效率,单位时间里要执行更多的测试用例.为了完成该要求,我们开发一个调度工具,让qtp运行在不同的机器上,通过C ...

  2. 老李分享:qtp自动化测试框架赏析-关键字自动化测试框架

    老李分享:qtp自动化测试框架赏析-关键字自动化测试框架   QTP从2005年继winrunner,robot逐渐退出历史舞台之后,占领主流自动化测试工具市场已经10年之久.当初为了提高在自动化测试 ...

  3. 网络编程之C10K

    网络编程之C10K 虽然在过去的十几年里C10K问题已经可以很好的解决,但学习网络编程时研究C10K问题仍然价值巨大,因为技术的发展都是有规律和线索可循的,了解C10K问题及其解决思路,通过举一反三, ...

  4. C++混合编程之idlcpp教程Python篇(8)

    上一篇在这 C++混合编程之idlcpp教程Python篇(7) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相似,工程PythonTutorial6中,同样加入了四个文件:Pyt ...

  5. C++混合编程之idlcpp教程Lua篇(8)

    上一篇在这 C++混合编程之idlcpp教程Lua篇(7) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相似,工程LuaTutorial6中,同样加入了四个文件:LuaTutori ...

  6. C++混合编程之idlcpp教程Python篇(7)

    上一篇在这 C++混合编程之idlcpp教程Python篇(6) 第一篇在这 C++混合编程之idlcpp教程(一) 与PythonTutorial4工程相似,工程PythonTutorial5中,同 ...

  7. C++混合编程之idlcpp教程Lua篇(7)

    上一篇在这 C++混合编程之idlcpp教程Lua篇(6) 第一篇在这 C++混合编程之idlcpp教程(一) 与LuaTutorial4工程相似,工程LuaTutorial5中,同样加入了四个文件: ...

  8. C++混合编程之idlcpp教程Python篇(6)

    上一篇在这 C++混合编程之idlcpp教程Python篇(5) 第一篇在这 C++混合编程之idlcpp教程(一) 工程PythonTutorial4中加入了四个文件:PythonTutorial4 ...

  9. C++混合编程之idlcpp教程Lua篇(6)

    上一篇在这 C++混合编程之idlcpp教程Lua篇(5) 第一篇在这 C++混合编程之idlcpp教程(一) 工程LuaTutorial4中加入了四个文件:LuaTutorial4.cpp, Tut ...

随机推荐

  1. 【Zookeeper】源码分析之请求处理链(四)

    一.前言 前面分析了SyncReqeustProcessor,接着分析请求处理链中最后的一个处理器FinalRequestProcessor. 二.FinalRequestProcessor源码分析 ...

  2. mysql 常用命令集锦

    Mysql安装目录数据库目录/var/lib/mysql/配置文件/usr/share/mysql(mysql.server命令及配置文件)相关命令/usr/bin(mysqladmin mysqld ...

  3. angular destroy & jquery destroy

    destroy的目的是为了内存溢漏,这对性能会造成影响. angular scope在处理element 移除时,会触发destroy, 而调用逻辑和jquery使用的一样. 在ck editor 中 ...

  4. 使用grunt完成requirejs的合并压缩和js文件的版本控制

    最近有一个项目使用了 requirejs 来解决前端的模块化,但是随着页面和模块的越来越多,我发现我快要hold不住这些可爱的js文件了,具体表现在每个页面都要设置一堆 requirejs 的配置( ...

  5. js本地预览图片

    废话不说  直接上代码 <script type="text/javascript" src="http://code.jquery.com/jquery-late ...

  6. 【曝】苹果应用商店逾千款iOS应用存安全漏洞

    据国外网站Ibtimes报道,知名网络安全公司FireEye日前警告称,由于一款名为“JSPatch”.可帮助开发者修改应用程序的软件上存在安全漏洞,导致苹果应用商店内1000多款使用了该框架的iOS ...

  7. 如何让celery接受定制的参数

    背景介绍 最近的一个项目使用到celery结算订单,使用celery的确很方便.但是复杂的内部框架导致了需要传人大量的参数例如数据库配置文件等.下面先来看看我仿照官网写的代码.所有代码都放到githu ...

  8. Selenium 使用css selector (资源来源于网络)

    Selenium - CSS Selector 昨天我练习了用CSS(即层叠样式表Cascading Stylesheet) Selector来定位(locate)页面上的元素(Elements).S ...

  9. Lucene实战之初体验

    前言 最早做非结构化数据搜索时用的还是lucene.net,一直说在学习java的同时把lucene这块搞一搞,这拖了2年多了,终于开始搞这块了. 开发环境 idea2016.lucene6.0.jd ...

  10. 轻松理解JavaScript之AJAX

    摘要 AJAX技术是网页构建的必备技能之一,本文希望能帮助大家轻松的学习这项技术 一.什么是ajax? ajax(异步javascript xml) 能够刷新局部网页数据而不是重新加载整个网页. 二. ...