QTP学习日记_20090121

上一篇 / 下一篇  2009-01-21 16:57:10 / 个人分类:QTP

以下是《摘抄》,非原创

QTP中WebElement对象的赋值

由于一般web上面的编辑控件,QTP都识别成WebElement对象,所以在编辑框中输入的内容,QTP没有录制下来,以下代码实现了WebElement的赋值:

Dim MyWebElement

Set MyWebElement = Browser("Tencent BBS V3.1_2").Page("Community Server - 回复内容").Frame("Frame").WebElement("WebElement").Object


MyWebElement.innerHTML = "替换成要输入的内容即可"

-------------------------------------

QTP中对识别为WebElement的对象进行输入操作的一种解决办法

    在设计自动化框架的过程,发现了一些被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消息提示都可能使脚本失败。

    欢迎交流更好的解决思路!

 


TAG: QTP

克彻巴彦 引用 删除 克彻巴彦   /   2010-07-13 17:08:49
5
 

评分:0

我来说两句

Open Toolbar