对启用了ReadOnly属性的WebEdit控件无法使用Set方法赋值的处理办法

上一篇 / 下一篇  2013-06-19 15:39:28 / 个人分类:QTP自动化笔记

   在测试web程序的时候,我们会遇到一些控件类型为WebEdit的控件,比如:日期为Webedit控件,但是它的赋值是通过一个日历控件选择日期进行赋值,且该Webedit内容为只读,不可直接输入,当我们在QTP中使用Set方法进行赋值的时候会报错,提示"Object is disabled",导致赋值失败,这个是由于该WebEdit的ReadOnly属性设置为true所致,如果我们要直接使用WebEdit的Set方法进行赋值时,我们可以通过以下几种方式实现Set的赋值操作.

方法1:使用对象自身接口进行赋值
      Browser("xxx")Page("xxx").WebEdit("xxx").Object.value="需要设置的值"

方法2:使用Set方法赋值前,调用clearAttributes方法清除属性.
      Browser("xxx")Page("xxx").WebEdit("xxx").Object.clearAttributes
      Browser("xxx")Page("xxx").WebEdit("xxx").set "需要设置的值"

方法3:修改WebEdit对象运行时的readOnly属性值为False,然后再调用Set方法进行赋值
      Browser("xxx")Page("xxx").WebEdit("xxx").Object.readOnly= false
      Browser("xxx")Page("xxx").WebEdit("xxx").Set "需要设置的值"
      以下是封装的一个修改readOnly属性,并进行赋值的函数
 '**************************************************************
 '功能:去除控件的只读属性(readOnly),并赋值,赋值后,还原readOnly属性
 '参数:oWedEdit-WebEdit对象 ; SetValue - 需要设置的值
 '**************************************************************
 Function ReadOnlyWebEdit_SetValue(oWedEdit,SetValue)
  Set WedEdit_Properties = oWedEdit.Object
  '获取readOnly原属性值
      Get_OldValue = WedEdit_Properties.readOnly
  '判断readOnly原属性值是否启用
    If Get_OldValue = true  Then
   '去除控件的只读属性
   WedEdit_Properties.readOnly = false
   '进行赋值
   oWedEdit.set SetValue
   '还原readOnly属性
   WedEdit_Properties.readOnly = Get_OldValue
    Else
   oWedEdit.set SetValue
    End If
 End Function

 


TAG: QTP qtp ReadOnly Set SET WebEdit

 

评分:0

我来说两句

Open Toolbar