QTP的那些事---通过html标签的属性获取对象(类似onclick的属性)

简介:

看到这个问题,有的人可能觉得就是通过DOM获取呗。我承认确实是通过DOM获取,唯一不同的是我通过的是html中标签的属性获取的。

代码如下:

On error resume next
btv="2012-03-25"
testpath="//span[@onclick='toAddTeam(this,btv)]'"
set myspan=Browser("name:=browser").Page("name:=page").Frame("mIfm-3").Object.all.tags("span")
For i=0 to myspan.length-1
' print myspan.onclick.value
 'myspan(i).onclick
'print  myspan(i).onclick
 strt="function onclick()"&chr(10)&"{"&chr(10)&"toAddTeam(this,'"&btv&"')"&chr(10)&"}"
    If myspan(i).onclick=strt Then
        print "find it"
        myspan(i).click
        Exit for
    End If
Next
 
注意以上的属性比较特殊,html中该属性的原始值为如下:
132 
也就是此时的属性为一个javascript的方法,一定要注意了属性如果是方法的话,获取到的该属性的值需要加上如下:
function onclick()
{
'your codes
}

为了这个问题我还真的纠结了好久,现在终于解决了属性为JS方法的一个问题,也算是对于QTP识别对象有了进一步的认识。

希望以上的解决方法可以为大家提供一个帮助。

*****************************************************************************************************

补充一下,个人通过XPATH获取的该对象的方法,我以前说过只要能通过DOM获取的对象都可以通过XPATH获取,他们两者的不同在于:

DOM是步步循环,XPATH则是一步到位,二者都可以达到相同的目的

以上的方法通过XPATH的解决方法如下:(一行代码,确实省事不少)

 

pathstr="//span[2][@class='spright' and @onclick="&chr(34)&"toAddTeam(this,'2012-03-30')"&chr(34)&"]"
'这里一定要注意就是xpath中如果属性中还有变量,此时的属性需要加上双引号的,这个问题我为此纠结了不少时间,希望大家注意 ,这里的xpath在firefox中查看的路径为
'xpath:  //span[2][@class='spright' and @onclick="toAddTeam(this,'2012-03-12')"]
print pathstr
Browser("name:=browser").Page("name:=page").Frame("mIfm-3").WebElement("xpath:="&pathstr).Click

以上的操作一步到位完成了获取指定对象的操作,确实很省事,嘿嘿,要不然我想selenium也不会这么火。确实xpath省事不少!
 

强烈推荐可以使用第二种方式XPATH!



本文转自hcy's workbench博客园博客,原文链接:http://www.cnblogs.com/alterhu/archive/2012/03/08/2385541.html,如需转载请自行联系原作者。

目录
相关文章
|
移动开发 搜索推荐 UED
HTML5的新语义化标签
HTML5引入的这些新语义化标签,通过明确标识内容的结构和意义,使得网页结构更加清晰,易于理解和维护。使用这些标签不仅提升了网页的可读性和可访问性,还增强了搜索引擎和辅助技术对网页内容的解析能力。在实际开发中,合理使用这些语义化标签,能够显著提升网页的质量和用户体验。
729 49
|
移动开发 HTML5
HTML5 表单属性3
`<input>` 标签的 `formaction`、`formenctype` 和 `formmethod` 属性分别用于指定表单提交的 URL 地址、数据编码类型和提交方法,这些属性可覆盖 `<form>` 标签中的相应属性,并且主要适用于 `type="submit"` 和 `type="image"` 的输入类型。
|
移动开发 JavaScript 前端开发
HTML5 表单属性7
`pattern` 属性使用正则表达式验证 `<input>` 元素的值,适用于 `text`, `search`, `url`, `tel`, `email`, 和 `password` 类型。
|
移动开发 UED HTML5
HTML5 表单属性6
`min`、`max` 和 `step` 属性用于限制 `<input>` 标签中的数值或日期范围。例如,可以设置日期选择器的最早和最晚日期,或限制数字输入框的值范围。`multiple` 属性允许在 `<input>` 中选择多个值,适用于邮箱和文件类型。这些属性增强了表单控件的功能性和用户体验。
|
移动开发 HTML5
HTML5 表单属性4
`formnovalidate` 属性是一个布尔属性,用于 `<input>` 元素,指示该输入在表单提交时不需验证,可覆盖 `<form>` 元素的 `novalidate` 属性,常与 `type="submit"` 一起使用。示例中展示了如何通过两个提交按钮(一个使用验证,另一个不使用)实现不同的表单提交方式。
|
移动开发 HTML5
HTML5 表单属性5
`height` 和 `width` 属性用于 `<input>` 标签中的 `image` 类型,定义图像的高度和宽度。
|
移动开发 JavaScript 前端开发
HTML5 表单属性2
`novalidate` 是 HTML `<form>` 元素的布尔属性,用于禁用浏览器的默认表单验证功能。当此属性存在时,浏览器不会检查表单字段是否符合预设的验证规则,允许开发者通过 JavaScript 等手段自定义验证逻辑。
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
534 5
|
移动开发 UED HTML5
HTML5 表单属性1
HTML5为<form>和<input>标签引入了多个新属性,增强了表单的功能性和用户体验。其中,<form>新增了autocomplete和novalidate属性;<input>则增加了如autofocus、formaction、placeholder等13个新属性,支持更精细的表单控制和数据验证。例如,autocomplete属性允许表单或输入字段提供自动完成功能,提高用户填写效率。
|
移动开发 数据安全/隐私保护 HTML5
HTML5 表单属性8
`required`属性确保表单提交前输入框不能为空,适用于多种类型的 `<input>` 标签,如文本、邮箱、密码等。`step`属性则用于指定输入域中合法数值的间隔,常与`max`和`min`属性配合使用,适用于数字、日期等类型。例如,设置`<input type="number" step="3">`可使输入值以3为单位递增或递减。