请问QTP里如何实现"复制".
我的问题是这样的:网页上有很多的目录, 选择其中的一个目录,点击 "Copy" 按钮, 然后选择另外一个目录, 再点击 "paste" 按钮.这个时候刚才复制的内容就显示在了text里面.只要点击"Add" 按钮就可以了. (注: 如果没有COPY东西就按"Paste" 按钮的话会有错误信息提示,要求用户先选择一个目录复制)
问题是:
当回放的时候,点完"Paste" 按钮后页面上会有错误信息,同时QTP就不能往下走了,并提示"object is disable". (看起来好像是复制的时候没有成功, QTP支持这样的复制吗)
请高人指点 在线等候:'( QTP提示"object is disable"的时候页面是什么样的状况?有一个弹出对话框?
这类问题一般自己多调试下应该都能搞定的~~ 原帖由 hsjzfling 于 2008-8-27 16:45 发表 http://bbs.51testing.com/images/common/back.gif
QTP提示"object is disable"的时候页面是什么样的状况?有一个弹出对话框?
这类问题一般自己多调试下应该都能搞定的~~
当QTP提示"object is disable"的时候我要测试的页面上也出现了错误提示信息,这个测试页面上的错误信息是不应该出现的, 我在录制过程中没有出现这个.这个测试页面上的错误信息的意思就是复制没成功. 单步调试下,看哪一步没有按照预期的步骤来执行,然后再看为什么没执行。 就是"paste"那一步出现问题了,没有paste成功.因为信息提示说剪贴板的内容为空,所以我觉得是COPY没成功。 QTP可以通过点击按钮来复制吗? 原帖由 angelia_liu 于 2008-8-28 15:05 发表 http://bbs.51testing.com/images/common/back.gif
就是"paste"那一步出现问题了,没有paste成功.因为信息提示说剪贴板的内容为空,所以我觉得是COPY没成功。 QTP可以通过点击按钮来复制吗?
这个问法给人感觉怪怪的。。。复制功能是由页面上那个"复制"按钮及其所触发的脚本来实现的,并非由QTP来实现复制,QTP只是去点击那个按钮而已。
LZ要关注的问题是
1. 是否QTP执行速度过快,导致"复制"按钮所触发的复制功能都还未完成就去点击了"粘贴"按钮
2. QTP的某些机制与"复制"按钮的脚本有冲突导致复制功能失效
BTW,QTP有自己专门用来操作剪贴板的对象的~ 非常感谢你的耐心指教
Browser("Merchandising Tool").Page("Page").WebList("appID").Select "102004 - Stage VIRTUAL: Ringtones Universe"
Browser("Merchandising Tool").Page("Page").Link("Edit Category").Click
Browser("Merchandising Tool").Page("Page").WebButton("Copy").Click
wait (20)
Browser("Merchandising Tool").Page("Page").Link("Add Category").Click
Browser("Merchandising Tool").Page("Page").WebButton("Paste").Click
wait (20)
Browser("Merchandising Tool").Page("Page").WebButton("Add").Click
这是我录制时的脚本.然后运行到Browser("Merchandising Tool").Page("Page").WebButton("Add").Click
时QTP就弹出了错误信息"object is disable".我现在可以肯定的是COPY已经成功了,因为COPY成功后会有提示信息.PASTE没有成功.
请指教. 为什么非要用这种方法呢?:o :o
在用例运行时从页面中取出该目录的value值,Set给另一个目录的Value值,不是更方便吗 原帖由 centurystone 于 2008-8-28 16:30 发表 http://bbs.51testing.com/images/common/back.gif
为什么非要用这种方法呢?:o :o
在用例运行时从页面中取出该目录的value值,Set给另一个目录的Value值,不是更方便吗
不好意思,请问怎么set 呀,我是初学的,这是我手动录制的. 获取对象的value值:
Browser("...").Page("...").WebEdit("mp_2").getroproperty("value")
设置对象的value值:
Browser("...").Page("...").WebEdit("mp_2").Set "目录路径字符串" 系统不让发。晕 原帖由 centurystone 于 2008-8-28 18:06 发表 http://bbs.51testing.com/images/common/back.gif
获取对象的value值:
Browser("...").Page("...").WebEdit("mp_2").getroproperty("value")
设置对象的value值:
Browser("...").Page("...").WebEdit("mp_2").Set "目录路径字符串"
你好,请问如果这样的话我的WebEdit里面的参数应该是什么呢?
我现在要获取的是一条数据,这数据里面可能还包括其他的一堆数据.
用这个方法的话我还要点击"COPY"按钮吗?
请指教该项怎么用.
非常感谢 天使小姐:
看了一下,你们上面说的.我有个小建议,也不知你愿不愿意用!- -
首先,用VBS取到剪贴板里的值,与你想copy的值对比,就可以知道程序是否正确啦!比简单的录制要有效.
至于怎么set值,那就要看你是要向什么对象set了,比方说,是webedit,那就好办啦!
将:
Browser("Merchandising Tool").Page("Page").WebButton("Paste").Click
这句改为:
Browser("Merchandising Tool").Page("Page").webedit("你的那个对象").set 剪贴板中的值
这样应该可以解决!
也就知道能不能帮到你! :)新手,学习一下~~ 原帖由 dalinangel 于 2008-8-30 12:48 发表 http://bbs.51testing.com/images/common/back.gif
天使小姐:
看了一下,你们上面说的.我有个小建议,也不知你愿不愿意用!- -
首先,用VBS取到剪贴板里的值,与你想copy的值对比,就可以知道程序是否正确啦!比简单的录制要有效.
至于怎么set值,那就要看你是要向什 ...
您好,谢谢你的帮助.
关于你说的怎么set值我还是有疑问,用你的方法是不是一次只能SET一个文本框里的内容呀.我现在是有好几个文本框里的内容要通过点击COPY按钮来获取,然后粘贴.
[ 本帖最后由 angelia_liu 于 2008-9-2 14:32 编辑 ]
回复 13# 的帖子
非常感谢你的花啦:$同时非常抱歉,好几天没来坛子了,
这个问题也很容易可以实现的。
我以前发过一个贴,里面有提到。(当然,高手就表看了,只限于中级以下的,因为偶水平有限)
http://bbs.51testing.com/thread-119684-1-1.html文档里的
《九.‘描述性编程为动态文本框赋值》章里有提到,附加实例,希望对你有所帮助:P
回复 13# 的帖子
给你贴出来吧。九. ‘描述性编程为动态文本框赋值
在自动化测试活动中经常会遇到为动态生成的文本框赋值的情况。例如:在订票系统中订一张票时,在下一页面只只显示一条记录;如果客户选择订两张以上的票据时,系统会自动生成相应数量的空记录数,那么此时自动化测试工具运行时就会出现问题。解决的方法如下:
我在QTP提供的测试网站做了如下操作
建立登录用户test
登录后选择订两张票,在后面填写乘客信息时会生成两条乘客信息(必录)
使用循环数组下标的方式计算出每个文本框的动态name值为每位乘客填写信息。
只要数组中用户信息定义没错,用例就没问题。
代码如下
'根据用户订票数量,循环录入录据信息
For i=0 to num-1
'WebEdit的格式为:WebEdit("name:=WebEdit的name值"&当前循环数)
IF(j<=2) THEN
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("name:=passFirst"&i).Set arrays(j)
j=j+1
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("name:=passLast"&i).Set arrays(j)
j=j+1
msgbox("录入第"&i+1&"条记录完成")
ELSE
MSGBOX("数组下标越界")
END IF
Next
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("creditnumber").Set "1" 呵呵,谢谢各位了.
问题已经解决,只要设置一下"Web Event Recording Configuration" 就可以了.
页:
[1]