51Testing软件测试论坛

标题: 在文本框中输入超出规定字数的内容后自动弹出弹出框,回放失败 [打印本页]

作者: yanfang84    时间: 2012-11-27 11:37
标题: 在文本框中输入超出规定字数的内容后自动弹出弹出框,回放失败
Browser("互动汽车_3互动汽车").Page("互动汽车_3互动汽车").Link("创建专辑").Click
Browser("互动汽车_3互动汽车").Page("互动汽车_3互动汽车").WebEdit("name").Set "12345678901"  '此输入框规定最多输入10个字,超出后自动弹出提示框“专辑名不能超过10个字”
Browser("互动汽车_3互动汽车").Dialog("来自网页的消息").WinButton("确定").Click
Browser("互动汽车_3互动汽车").Page("互动汽车_3互动汽车").WebEdit("connect").Set "防疫站通告"
Browser("互动汽车_3互动汽车").Page("互动汽车_3互动汽车").Link("驴行").Click
Browser("互动汽车_3互动汽车").Page("互动汽车_3互动汽车").Link("新手").Click
Browser("互动汽车_3互动汽车").Page("互动汽车_3互动汽车").Link("老款").Click
Browser("互动汽车_3互动汽车").Page("互动汽车_3互动汽车").WebButton("创建").Click
Browser("互动汽车_3互动汽车").Page("互动汽车_3互动汽车").Link("我的个人主页").Click
Browser("互动汽车_3互动汽车").Page("互动汽车-DRIVE FOR LIFE,爱汽车、爱生活、爱网").Link("我的专辑2").Click

但是回放时到了输入超出10个字时就是不弹框,也没有对超出字数的文字做自动删除动作,请问怎么解决?
作者: lsekfe    时间: 2012-11-27 11:45
帮顶下~~~
作者: 泰然    时间: 2012-11-27 12:15
这个问题涉及到了Set方法和手工填写的区别了。Set方法直接给文本赋值,而手工对一个文本赋值的方式是通过在文本中按键的方式来赋值的。你所说的“此输入框规定最多输入10个字,超出后自动弹出提示框专辑名不能超过10个字”,就是在做按键时判断文本长度,如果超过10,则提示,但Set不通过按键来赋值,所以就看不到提示了。

你可以看源代码,文本框有OnKeyUp/Press/Down一类的事件,这就是当按键时在做判断。

如果要将这个判断也在QTP中体现,就要在脚本中通过CreatObject("WScript.Shell").SendKeys的方法来发送按键,使得OnKey系列的函数能起作用。

具体SendKeys如何使用,可以百度查询。
作者: yanfang84    时间: 2012-11-27 14:38
回复 3# 泰然

你好,我按照你的办法在脚本中添加了如下代码:
CreateObject("WScript.Shell").SendKeys  "12345678901"
运行时自动打开计算器和outlook,并没有在打开的web窗口中输入内容,请问是不是还缺少什么呢?
作者: yanfang84    时间: 2012-11-27 14:46
回复 3# 泰然


    在web网页中没有聚焦点。
作者: yanfang84    时间: 2012-11-29 10:48
回复 3# 泰然


    你好,已经使用你的方法实现了问题,但是现在又存在另外一个问题了,就是这个sendkeys方法不能写入汉字。不知如何实现?
作者: 泰然    时间: 2012-11-29 11:39
Set Clipboard = CreateObject("Mercury.Clipboard")
Clipboard.Clear '清空原有数据
ClipBoard.SetText "王"  '对“王”做ctrl+C
ClipBoard.GetText '做CTRL+V,这样就sendkey王这个汉字了,之前要先设置焦点
ClipBoard.SetText "老"
ClipBoard.GetText
ClipBoard.SetText "五"
ClipBoard.GetText  '这里一共做了3次sendkey,每次都发送一个汉字,都判断字符长度
Set Clipboard=Nothing




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2