三个属性相同的对象,如何区分?
如图,“密码不能为空”有三个,我要如何区分这三个对象呢?使用正则表达式Browser("管理中心").Page("管理中心").Frame("frame_content").WebElement("html id:="&"RfvOldPwd","index:="&"0"),应该是第一个“密码不能为空”吧,但实际上后边两个也可被识别到,晕。。。。请高手指点 设置参数,参数化后,就可以啦,而且这Jqurey有问题吧 怎么设置? DOM试下呢 回复 4# yyc2164708
呃。。。。不会诶,请指点 可以把3个密码输入框外面的那个大框看做父对象
然后获取文本框子对象,长度应该是3
然后循环遍历每一个输入框输入内容 为每个文本框,建立索引。用索引去区别。 我只会WebTable。。。 回复 7# 17800455
怎么建立索引? set WebElement=Browser("业务管理中心").Page("业务管理中心").Frame("frame_content").WebTable("密码修改").ChildItem(2,2,"WebElement",1)
我这样来建立索引,怎么不对呢,提示General run error. 请尝试使用description对像,或是ChildObjects对像 楼上正解 回复 12# 026300
楼上楼上正解 请尝试使用description对像,或是ChildObjects对像
今天有雾 发表于 2012-2-24 14:28 http://bbs.51testing.com/images/common/back.gif
可以使用childobjects判断当前存在几个“密码不能为空”的WebElement
这里看你使用了index来判断,由于三个控件属性相同,就是说即使新密码及原始密码后面出现了“密码不能为空”,第三个也仍然会被识别,因为它的确是第一个满足你所描述的条件的WebElement,所以使用index是不能判断到底是哪个控件出现了
如果你的页面如你的截图,总共9个WebElement,可以先使用childobjects,判断存在几个“密码不能为空”,如果是3个 那就全部存在,如果是2个,使用
WebElement("index:=3")获取第四个
WebElement的text是否为”新 密 码“,如果是,那第一个“密码不能为空”就存在,然后判断第6个
WebElement的text是否为“确认密码”,就知道第二个“密码不能为空”是否存在 使用description对像获取父窗口下符合description对像描述条件的ChildObjects对像 使用循环语句逐个操作 :)添加对象,在对象中设置Y坐标
呵呵 很简单的事情 试试这个函数
' find all elements with given innertext.
'
' @param strText innertext
' @param strTag element tag, such as SPAN
' @return array of items. Empty Array if nothing found
Function GUI_Html_FindElementAll(objContainer, strText, strTag)
Set desc = Description.Create()
desc("innertext").Value = strText
desc("innertext").RegularExpression = False
desc("html tag").Value = UCase(strTag)
desc("html tag").RegularExpression = False
desc("visible").Value = True
desc("micclass").Value = "WebElement"
Set cl = objContainer.ChildObjects(desc)
Set desc = Nothing
ReDim retAry(cl.count -1)
For idx=0 To cl.count -1
Set retAry(idx) = cl(idx)
Next
GUI_Html_FindElementAll = retAry
End Function
页:
[1]