QTP中对识别为WebElement的对象进行输入操作的一种解决办法 qtp教程
在设计自动化框架的过程,发现了一些被QTP识别为WebElement的对象,需要对其进行输入操作;而WebElement只有click方法,是没有输入的方法的。
考虑了实际中确实需要具有这种输入的支持(比如利用js生成的输入框,比较常见的是HTML编辑器输入框),就着手去解决。找到了一种解决办法:利用WshShell对象的SendKey方法来实现。在网上找了个html代码编辑器的实例,实现具体代码如下:
Option Explicit
Dim oWin32
Set oWin32 = CreateObject(\"wscrīpt.shell\")
oWin32.Run(\"http://www.ewebeditor.net/demo/\")
’由于html编辑器输入框没有找到稳定的属性用于识别,QTP录制时也没有录下对其操作,所以采用先将焦点移到其上一个对象,再按tab移动焦点到html编辑器上
Browser(\"title:=.*eWebEditor\").page(\"title:=.*eWebEditor\").WebList(\"name:=select\",\"index:=0\").FireEvent \"onfocus\"
’对IE窗口模拟键盘输入操作
With oWin32
.sendkeys \"{TAB}\"
wait 2
.sendkeys \"ksadjflonfocusksjdlemowstitlitoWebLeEvenfocusonfocusonfocusonfocusonfocusonfocusonfocusdsjflkjdsklfjlkdsjf\"
End With
以上是我想到的一种实现方式,也是目前正在使用的方式。但只是一个不得已的解决方法——因为这种方式是很脆弱的,焦点变动,甚至一个Windows消息提示都可能使脚本失败。
欢迎交流更好的解决思路!