51Testing软件测试论坛
标题:
模拟键盘在web控件WebEdit中输入字符
[打印本页]
作者:
dcyan
时间:
2007-4-21 21:06
标题:
模拟键盘在web控件WebEdit中输入字符
各位老大,我的问题是这样的
我不想通过WebEdit的Set方法向WebEdit控件中输入字符,因为即使WebEdit是处于禁用状态,WebEdit.Set方法还是可以向WebEdit里写东西
我想验证的是,WebEdit处于禁用状态的时候是不能接受任何输入的,所以我想模拟敲击键盘
我先是尝试模拟键盘输入向处于可编辑状态下的WebEdit写字符,但是没成功
我用的方法是
Browser("@@").Page("@@").WebEdit("@@") .Object.Focus '使WebEdit获得焦点
Set wsh=CreateObject("Wscript.shell")
wsh.sendKeys"h"
论坛里介绍的那个 万能的键盘模拟函数 我也试过了,也不行
Browser("@@").Page("@@").WebEdit("@@") .Object.Focus '使WebEdit获得焦点
Extern.Declare micVoid, "keybd_event", "user32.dll", "keybd_event", micByte,micByte,micDWord,micULong
Extern.keybd_event 48,0,0,0
WebEdit里就是没接受到字符
怎样才能通过模拟键盘操作向WebEdit控件中输入字符呢?
我感觉好像是sendKeys方法好像是将字符写到当前获得焦点的控件中,是不是因为QuickTest把焦点抢去了,所以WenEdit得不到输入?
作者:
yzem99
时间:
2007-4-21 23:01
试试type或presskey方法吧
作者:
dcyan
时间:
2007-4-21 23:19
web控件没有Type方法啊
presskey那个方法怎么用啊,yzem99能不能说详细些啊,谢谢sdlkfj2
作者:
winfood
时间:
2007-4-22 09:17
> 也许WebEdit不接受键盘输入的原因是执行如下语句的时候,该WebEdit没有真正获得焦点。
Browser("@@").Page("@@").WebEdit("@@") .Object.Focus
你打算向这个WebEdit输入内容,前提是该WebEdit已经被禁止(Disabled)。处于这种状态的WebEdit,即便调用Focus方法也不会获得焦点。对一个控件调用Focus方法,和你用鼠标点击一个控件的道理是一样的。可以比较一下:
WebEdit在Enabled的状态下,鼠标点击它可以获得焦点;
WebEdit在Disabled的状态下,鼠标点击它页面上没有控件获得焦点(焦点应该是放到页面本身去了);
可以用脚本来验证一下是不是这样,分别找到Enabled和Disabled的WebEdit控件,对比一下结果。我已经对比过,结果和前面说的是一致的。
> 如果你想验证一个WebEdit是不是Disable的话,可以从测试脚本查询WebEdit控件的状态。这样可以避开上面的问题。
> 如果是测试脚本运行时QTP窗口影响了测试对象窗口的话,可以在测试脚本的头部增加一段代码把QTP窗口最小化。
Set qtApp = getObject("","QuickTest.Application")
qtApp.WindowState = "Minimized"
在测试脚本的尾部恢复QTP窗口
qtApp.WindowState = "Maximized"
Set qtApp = Nothing
作者:
dcyan
时间:
2007-4-22 11:01
感谢winfood
是quicktest抢了焦点,我加了你上面使qtp最小化的代码后就可以了
Set qtApp = CreateObject("QuickTest.Application")
qtApp.WindowState = "Minimized"
Browser("CNF").Page("DetailsApplication").WebEdit("AppName").Click
Set wsh=CreateObject("Wscript.shell")
wsh.sendKeys "h"
qtApp.WindowState = "Maximized"
Set qtApp = Nothing
‘h’能发送到WebEdit中了,不过不知道他有没有正真模拟敲击键盘
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2