为啥密码框WinEditor用type无法输入
各位大虾, 我这边遇到一个登录页面,密码框是WinEditor,然后我使用单步添加对象, 添加代码如下:Browser("xxxx").Page("xxxx").WinEditor("Edit").Type "111111"
但运行时还是没法把值输入进去, 不知是啥原因。
控件属性如图: 后面我用录制功能试了下, 只录下了这句话:
Browser("xxxx").Page("xxxx").WinEditor("Edit").SetCaretPos 0,0
但具体的值并没有录下来, 请高手提点意见, 谢谢~~ 我在想我的为什么不能录制喃?record按钮正常的 但是run是置灰的 这个Edit框可能是个特殊控件 尝试用Sendkey, 我在其它自动化软件里, 有用到Keys这个属性, 也就是模仿键盘输入.
有特殊控件, 可能本来就具备防止外部软件强制输入的功能. 用键盘输入也许可以绕过这个问题, 你查看下对象的自有属性和方法。 也许对象就具有keys这样的键盘输入属性 回复 5# lhd85
我用SendKeys语句试过了, 貌似输入不进去~~
没看到有keys这样的自身属性 Browser("xxxx").Page("xxxx").WinEditor("Edit").Set"111111"
这样可以吗? 回复 7# dqf
Set也试过了, 但run时会报错, 如下图: 如果手工输入的话是可以通过键盘输入的, 或者通过点击右边的软键盘按钮来通过软键盘来输入, 本来想通过点击软键盘, 但软键盘里都是WinButton,而且每一个button的位置都是随机的, 并且属性除了坐标基本上大多都一样的,并且类似text属性为空的, 这样要识别点击的是哪个数字或字母按钮就很困难了。
目前还想不到啥方法来识别。。 Browser("xxxx").Page("xxxx").WinEditor("Edit").Type "111111"
替换成:
Set skey=createobject("wscript.shell")
skey.SendKeys "111111"
Set skey= nothing 回复 10# ls_721521
SendKeys方法已经试过, 没法输入进去,还是为空 键盘输入前先wait 1
或者先让那个控件获取焦点再键盘输入呢
.focus 你先手工操作一下:只用键盘,使用tab或上下翻页键看能否成功。如果能的话就没问题 1>看一下这控件都有哪些方法。有没有objectsettype ,有的话先设置一下焦点,然后在用。
2>设置焦点后 用Sendkeys试试。 回复 13# ls_721521
用tab键可以从用户名框切换到该密码框, 但手工输入密码后再点Tab键, 就无法切换出去了, 光标会一直停留在该框内 回复 14# 17800455
用spy看了下该控件所支持的方法, 如下图, 里面是有Type方法的, 但实际运行时就是没法输入值进去,不知为啥。
是不是因为是密码框的原因, 开发人员对该控件做了特殊处理了 我也遇到过同样的问题,手动从键盘可以输入值,用sendkey就不行
同样求解。。。密码框是activex控件的。。 我选择ActiveX插件进QTP, 然后进行录制, 录制下来的代码如下:
Browser("xxxx").Page("xxxx").ActiveX("PowerPasswordXBOSH Control").WinEditor("Edit").SetCaretPos 0,0
具体的密码值还是没有录下来, 然后添加上以下语句, 运行时还是没法输入进去值.
Browser("xxxx").Page("xxxx").ActiveX("PowerPasswordXBOSH Control").WinEditor("Edit").Type "123456" 用set 应该没错, webedit都是用set 来赋值 回复 19# tonyliu12
用Set是不行的,会报错, 该控件的class name是WinEditor, 不是WebEdit
页:
[1]
2