QTP的那些事---通过html标签的属性获取对象(类似onclick的属性)
2012-03-08 17:10
627 查看
看到这个问题,有的人可能觉得就是通过DOM获取呗。我承认确实是通过DOM获取,唯一不同的是我通过的是html中标签的属性获取的。
代码如下:
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
为了这个问题我还真的纠结了好久,现在终于解决了属性为JS方法的一个问题,也算是对于QTP识别对象有了进一步的认识。
希望以上的解决方法可以为大家提供一个帮助。
*****************************************************************************************************
补充一下,个人通过XPATH获取的该对象的方法,我以前说过只要能通过DOM获取的对象都可以通过XPATH获取,他们两者的不同在于:
DOM是步步循环,XPATH则是一步到位,二者都可以达到相同的目的
以上的方法通过XPATH的解决方法如下:(一行代码,确实省事不少)
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
代码如下:
Onerrorresumenext btv="2012-03-25" testpath="//span[@onclick='toAddTeam(this,btv)]'" setmyspan=Browser("name:=browser").Page("name:=page").Frame("mIfm-3").Object.all.tags("span") Fori=0tomyspan.length-1 'printmyspan.onclick.value 'myspan(i).onclick 'printmyspan(i).onclick strt="functiononclick()"&chr(10)&"{"&chr(10)&"toAddTeam(this,'"&btv&"')"&chr(10)&"}" Ifmyspan(i).onclick=strtThen print"findit" myspan(i).click Exitfor EndIf Next
注意以上的属性比较特殊,html中该属性的原始值为如下:
也就是此时的属性为一个javascript的方法,一定要注意了属性如果是方法的话,获取到的该属性的值需要加上如下:
functiononclick()
{
'yourcodes
}
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
为了这个问题我还真的纠结了好久,现在终于解决了属性为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')"]
printpathstr
Browser("name:=browser").Page("name:=page").Frame("mIfm-3").WebElement("xpath:="&pathstr).Click
以上的操作一步到位完成了获取指定对象的操作,确实很省事,嘿嘿,要不然我想selenium也不会这么火。确实xpath省事不少!
强烈推荐可以使用第二种方式XPATH!
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
相关文章推荐
- 通过struts2标签在jsp获取对象属性失败,这是bug?
- 源码变换 超文本标记语言(即HTML),是用于描述网页文档的一种标记语言。 HTML通过文本来描述文档显示出来应该具有的“样子”。它主要通过标签来定义对象的显示属性或行为。
- 如何给html元素的onclick事件传递参数(即如何获取html标签的data-*属性)
- javascript通过获取html标签属性class实现多选项卡的方法
- 通过javascript获取HTML标签自定义属性
- 通过ID或NAME获取HTML标签对象及信息
- 自定义html标签属性,并通过JQuery获取
- javascript通过获取html标签属性class实现多选项卡的方法
- java通过Annotation对象获取注解属性的值
- A标签中通过href和onclick传递的this对象
- QTP的那些事--采用DOM,描述性编程获取指定的对象
- js无法获取到html标签的属性
- 通过反射获取对象属性、属性的值,设置对象属性的值
- 自动化测试工具QTP:维护对象库、获取对象属性、智能识别、参数化若干问题
- BOM__Document对象简介-三种获取节点方式,通过节点层次关系获取节点,以及对象中的属性操作
- jquery的attr方法与ie7不兼容,js获取html标签自定义属性
- A标签中通过href和onclick传递的this对象
- 如何给html元素的onclick事件传递参数即如何获取html标签的data
- 通过反射获取对象的属性和值
- 通过js修改html的标签属性