木子木子 发表于 2016-4-27 17:19:10

请教一个WebEdit中 html Id 在描述编程的问题

在描述性编程中,有一个对象是WebEdit,然后只能以html id最为唯一区分标示,但是在对象侦测器中发现 属性是 "$5c190e3a$UserCode"如果以这个作为标记是无法回放成功的,提示找不到对象 Browser("xx").Page("xx").WebEdit("html id:=$5c190e3a$UserCode").Set "abc" 请问下该如何处理这个属性


木子木子 发表于 2016-4-28 10:02:45

没有那个同学知道如何处理吗?

rxwrz 发表于 2016-4-28 11:14:17

这个问题,你最好跟开发者确认下那个ID没有变化,因为网页的ID并不是一直不变的

jingzizx 发表于 2016-4-28 14:45:02

使用其它方式察看id是多少

木子木子 发表于 2016-4-28 15:29:01

jingzizx 发表于 2016-4-28 14:45
使用其它方式察看id是多少

其他啥子方法?

kexinqw11 发表于 2016-4-28 15:40:18

用QTP的spy查看这个元素的其他属性,不一定要用这个属性,只要其他多个属性能唯一确定这个元素即可,属性越多越准确,主要看你自己如何选取属性了,描述性编程属性与属性之间用分号隔开

木子木子 发表于 2016-4-28 16:31:53

kexinqw11 发表于 2016-4-28 15:40
用QTP的spy查看这个元素的其他属性,不一定要用这个属性,只要其他多个属性能唯一确定这个元素即可,属性越 ...

我测试过如果使用 WebEdit("abs_x:="&Menu_abs_x1,"abs_y:="&Menu_abs_y1).set "abc" 是可以实现识别的,但是如果由于UI的调整,只是更换了位置没有做其他的调整,代码的维护性就很低了

kexinqw11 发表于 2016-4-28 17:59:34

木子木子 发表于 2016-4-28 16:31
我测试过如果使用 WebEdit("abs_x:="&Menu_abs_x1,"abs_y:="&Menu_abs_y1).set "abc" 是可以实现识别的, ...

你可以尝试用html tag 属性input的值应该是不会变得,总不会把输入框弄成按钮之类的吧;还有height ,编辑框的高度也不应该会发生变化,因为美观问题,编辑框高度应该保持一致,另外楼主可以尝试用下其他属性比如html class等

木子木子 发表于 2016-4-29 14:33:13

继续研究发现,html id 中的$符号是开发专门加入的为了区分内容的标记,如果在IE中把html id修改为不要$符号,后重新把描述编程中调整为 "html id:=f883d135edUserCode" 这时控件的识别操作均无问题,也就是说是qtp 在这里无法识别到$符号,但是如果WebEdit("WebEdit").GetROProperty("html id")后发现这时给出的信息则是完整的 $f883d135$edUserCode,理论上不能识别$应该是在获取的时候也不能有效读取,不知为何这里是在描述的时候不能使用

既然这样现在有两种方案:
1、开发把全部的代码做调整(明显不现实)
2、测试想办法把$替换为系统能识别的字符,但是现在我还暂时没有想到办法,请大家给点意见,毕竟现在已经知道原因了

kexinqw11 发表于 2016-4-29 20:14:19

木子木子 发表于 2016-4-29 14:33
继续研究发现,html id 中的$符号是开发专门加入的为了区分内容的标记,如果在IE中把html id修改为不要$符 ...

不是不能QTP不能识别吧,这个涉及到正则表达式,楼主的研究精神非常好!楼主可以在特殊字符前面加个转义字符,所以楼主试试html id:="\$f883d135\$edUserCode"

木子木子 发表于 2016-5-5 11:31:35

kexinqw11 发表于 2016-4-29 20:14
不是不能QTP不能识别吧,这个涉及到正则表达式,楼主的研究精神非常好!楼主可以在特殊字符前面加个转义 ...

3q

木子木子 发表于 2016-5-5 11:31:42

kexinqw11 发表于 2016-4-29 20:14
不是不能QTP不能识别吧,这个涉及到正则表达式,楼主的研究精神非常好!楼主可以在特殊字符前面加个转义 ...

3q
页: [1]
查看完整版本: 请教一个WebEdit中 html Id 在描述编程的问题