总述:遇到的这个问题,是另一项目组的一个同事在运用QTP时遇到的,我经研究后的问题解决记录
'第一种方法
rowser("CHS4.0").Page("CHS4.0").Frame("ifrmune").Link("| 健康档案").Click
str = Browser("CHS4.0").Page("CHS4.0").Frame("frmwgs").WebTable("tt").GetCellData(1,2)msgbox str
Browser("CHS4.0").Page("CHS4.0").Frame("frmwgs").WebTable("tt").ChildItem(1,2,"WebElement",0).Click
Browser("CHS4.0").Page("CHS4.0").Frame("frmwgs").WebTable("tt").FireEvent("ondblclick")
'第二种方法,修改对象库
str = "户主4"
Browser("CHS4.0").Page("CHS4.0").Frame("frmwgs").WebElement("吕建跃").SetTOProperty "innertext",str
msgbox Browser("CHS4.0").Page("CHS4.0").Frame("frmwgs").WebElement("吕建跃").GetTOProperty("innertext")
Browser("CHS4.0").Page("CHS4.0").Frame("frmwgs").WebElement("吕建跃").FireEvent("ondblclick")
'Browser("CHS4.0").Page("CHS4.0").Frame("frmwgs").WebElement("户主4").FireEvent("ondblclick")
其中解决过程
1、描述性编程,无法解决问题
'第一种方法,描述性编程
'"outerhtml :=<DIV style="&"TEXT-ALIGN: center; WIDTH: 60px>"&"户主4"&"</DIV>",
'"innertext :=户主4","html tag:= DIV","Index:=0"
Browser("CHS4.0").Page("CHS4.0").Frame("frmwgs").WebElement("innertext :=户主4","html tag:=DIV","Index := 0").FireEvent("ondblclick")
注意,用对象库里的对象完全能识别,但是用描述性编程就是不行
WebElement("Name:=UserName", "Index:=0")
注:如果当前只有一个对象,使用index=0将无法查找到对象,因此就不能在对象描述中使用index属性。
另外:webelement对象,确实在实际工作|时,发现有些情况下用描述性编程反而定位不到对象,而使用内置的对象参数化却能够定位,这其中的原因尚不明确
2、修改对象库的值,只不过只是运行时有效
SetTOProperty()
此方法可行
3、webtable中想双击
注意:childitem是可以click的
Browser("CHS4.0").Page("CHS4.0").Frame("frmwgs").WebTable("tt").ChildItem(1,2,"WebElement",0).Click
Browser("CHS4.0").Page("CHS4.0").Frame("frmwgs").WebTable("tt").FireEvent("ondblclick")
无法实现双击,只能选中某行
不能实现双击
4、子对象模型也可以用,但是鉴于父对象下有太多的webelement对象,这样效率不高
即大致方式为,采用描述性对象,然后再具体去框定父对象下的该class的类别的子对象集合
直到找到要的对象