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

 在测试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

原文地址:https://www.cnblogs.com/hgfg331/p/3171583.html