windangle 发表于 2009-2-15 12:41:03

描述性编程,属性值与正则表达式冲突,如何解决?

Browser和page的title值都是会变化的,只有前面的“百度搜索”不变,所以用正则表达式表示
Link的name的值通过一些方法得到,存放在变量a中
点击此Link的语句如下:
Browser("name:=百度搜索.*").page("title:=百度搜索.*").Link("name:=" & a).click
目前的情况是,变量a中的值,有时包含有正则表达式所用的符号,会导致Link无法被找到
请问是否有可以设置让Link("name:=" & a)这一部分语句不进行正则表达式匹配呢?

dreamever 发表于 2009-2-15 22:49:25

没写过qtp下的描述性编程,但是我想最后执行的时候,qtp的编译器也是把"name:="&a合并成一句,也就是说需要看看把变量里的内容代入name:=&中,看是不是会有错误.
虽然没写过,但是应该可以确定,描述性编程与正则表达式是不冲突的.

ppent 发表于 2009-2-16 11:52:58

检查变量a中的内容,有正则符号时自动加上转义符

manhong 发表于 2009-2-16 13:38:26

转义符 \

jifeng 发表于 2009-2-16 16:19:51

Browser用creationTime属性,Page用index属性,Link考虑用其他属性或多个属性

windangle 发表于 2009-2-16 22:16:39

目前的情况是,a的值是从网页中读取的,网页中的数据是随即的,有的时候可能包含一些符号,导致描述的目标识别不到。
例如有一个页面链接的名字“鹰击长空 下载| PChome 下载中心”,a取到这个值时,Link就不能正确识别到了。
目前我知道可以用Description的方法来进行描述来解决,但是要多写点代码。想知道有没有可以直接让Browser("name:=百度搜索.*").page("title:=百度搜索.*").Link("name:=" & a).click中的Link("name:=" & a)部分不做正则表达识别。

asoqa 发表于 2009-2-17 09:40:32

set MyDesc = Description.Create()
MyDesc("name").Value = a
MyDesc("name").RegularExpression = False
Browser("name:=百度搜索.*").page("title:=百度搜索.*").Link(MyDesc).click

[ 本帖最后由 asoqa 于 2009-2-17 09:43 编辑 ]

onlonely 发表于 2009-3-24 21:19:51

原帖由 asoqa 于 2009-2-17 09:40 发表 http://bbs.51testing.com/images/common/back.gif
set MyDesc = Description.Create()
MyDesc("name").Value = a
MyDesc("name").RegularExpression = False
Browser("name:=百度搜索.*").page("title:=百度搜索.*").Link(MyDesc).click

这个办法比较稳妥.
当然如果变量里面的内容不算复杂的话.就修改变量内容
其中
"[]"
"/\"
等正则表达式需要使用的符号用"\"转译下
页: [1]
查看完整版本: 描述性编程,属性值与正则表达式冲突,如何解决?