cs998998 发表于 2009-4-20 14:09:19

请问Set、Click、Select等操作可以参数化么

Obj.Click
Obj.Set
Obj.Select
我想把上面的动作Click、Set、Select参数化,请问可以实现么?
因为还有好多特殊的操作,所以不想用Select Case去列举的方法,不知道还有没有其它的方法。

[ 本帖最后由 cs998998 于 2009-4-20 14:11 编辑 ]

dreamever 发表于 2009-4-20 15:42:15

obj.set value
obj.select value
其中value就是你想要输入的值.
但是obj.click我不知道你想实现什么样的参数化

hsjzfling 发表于 2009-4-20 18:38:13

当然是可以的了,不然怎么实现关键字驱动呢~

实现方法就是用一个变量来代替Click等,再拼接字符串,然后执行。

hsjzfling 发表于 2009-4-20 19:44:55

估计有人又会问具体怎么来做。。。举个例子说明下吧

有这么一行代码:
Browser("eBaoTech InsuranceSystem").Page("eBaoTech InsuranceSystem").WebEdit("userName").Set username

首先要把代码分成三个部分(QTP实际上也就是这么做的):对象,操作,值
对象可以给一个变量,
Set oWebEdit = Browser("eBaoTech InsuranceSystem").Page("eBaoTech InsuranceSystem").WebEdit("userName")
然后为了使用方便,一般会写一个实现操作的Sub,比如
Sub ProcessObject(ByVal sObj, ByVal op, ByVal val)
   Execute sObj & "." & op & " "& val
End Sub
接下来就可以将之前的代码改写为:
ProcessObject "oWebEdit", "Set", "username"
而Click之类的操作是没有值的,那么调用sub时给val传个""就好了

友情提醒:这个例子中oWebEdit是个对象,username是一个变量;在函数中使用该sub需要注意变量的作用域

hsjzfling 发表于 2009-4-20 19:48:44

最后补充下咯,对于lz的需求来说,只需要把
ProcessObject "oWebEdit", "Set", "username"
中的"Set"替换为变量就好了

cs998998 发表于 2009-4-21 08:30:54

回复 5# 的帖子

非常感谢,我大概知道怎么回事了,我去试一下。

virgolong 发表于 2009-4-21 08:41:39

学习了,现在知道有这么回事,下次用到时再仔细看看

cs998998 发表于 2009-4-29 16:04:43

已解决,谢谢。
页: [1]
查看完整版本: 请问Set、Click、Select等操作可以参数化么