51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4503|回复: 4
打印 上一主题 下一主题

[原创] 模拟键盘在web控件WebEdit中输入字符

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-4-21 21:06:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位老大,我的问题是这样的
我不想通过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得不到输入?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-4-21 23:01:47 | 只看该作者
试试type或presskey方法吧
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-4-21 23:19:47 | 只看该作者
web控件没有Type方法啊
presskey那个方法怎么用啊,yzem99能不能说详细些啊,谢谢sdlkfj2
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-4-22 09:17:45 | 只看该作者
> 也许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
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-4-22 11:01:20 | 只看该作者
感谢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中了,不过不知道他有没有正真模拟敲击键盘
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-16 00:53 , Processed in 0.071199 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表