发布新日志

  • 学习日志_20090120_退出循环

    2009-01-21 17:21:37

    8.ExitAction - 退出当前操作,无论其循环属性如何。
      ExitActionIteration - 退出操作的当前循环。
      ExitRun - 退出测试,无论其循环属性如何。
      ExitGlobalIteration - 退出当前全局循环。
  • QTP学习日记_20090121

    2009-01-21 16:57:10

    以下是《摘抄》,非原创

    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消息提示都可能使脚本失败。

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

     

Open Toolbar