对启用了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