yanfang84 发表于 2012-11-27 11:37:08

在文本框中输入超出规定字数的内容后自动弹出弹出框,回放失败

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:52

帮顶下~~~

泰然 发表于 2012-11-27 12:15:44

这个问题涉及到了Set方法和手工填写的区别了。Set方法直接给文本赋值,而手工对一个文本赋值的方式是通过在文本中按键的方式来赋值的。你所说的“此输入框规定最多输入10个字,超出后自动弹出提示框专辑名不能超过10个字”,就是在做按键时判断文本长度,如果超过10,则提示,但Set不通过按键来赋值,所以就看不到提示了。

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

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

具体SendKeys如何使用,可以百度查询。

yanfang84 发表于 2012-11-27 14:38:50

回复 3# 泰然

你好,我按照你的办法在脚本中添加了如下代码:
CreateObject("WScript.Shell").SendKeys"12345678901"
运行时自动打开计算器和outlook,并没有在打开的web窗口中输入内容,请问是不是还缺少什么呢?

yanfang84 发表于 2012-11-27 14:46:32

回复 3# 泰然


    在web网页中没有聚焦点。

yanfang84 发表于 2012-11-29 10:48:51

回复 3# 泰然


    你好,已经使用你的方法实现了问题,但是现在又存在另外一个问题了,就是这个sendkeys方法不能写入汉字。不知如何实现?

泰然 发表于 2012-11-29 11:39:47

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
页: [1]
查看完整版本: 在文本框中输入超出规定字数的内容后自动弹出弹出框,回放失败