我在网页上使用QTP时有一段代码
浏览器(“Sarit_2”)。页面(“Sarit”)。WebEdit(“frm_vendor_address1”)。设置dtVAdd1
你会观察到,我使用了'Set'属性。实际上,我想使用'Type'属性,因为很快我会编写脚本来检查字段限制。当我尝试设置一个大于字段长度的值时,.Set属性会抛出一个错误。但Type属性(我在win32应用程序中使用它),它的字段长度类型,但至少不会抛出我无法处理的错误。
WebEdit或此特定WebEdit中的QTP不允许我选择.Type。为什么在SWFfield的情况下允许我这样做?
有什么建议吗?
答案 0 :(得分:1)
“Type”是用于Windows应用程序,Delphi,Java,swf等的方法......但它不用于Web应用程序。
对于Web应用程序,我们必须使用“Set”方法。因此上面的代码接受'Set'方法。这也说明了为什么你不能对基于web的对象使用'Type'方法。
如果你想计算字段限制,你可以在webedit上对象间谍 - >将其最大长度值保存到任何变量 - >在运行时使用“浏览器(”...“)将页面编辑字段的最大长度存储到variable2。页面(”...“)。 ....GetROProperty(“最大长度”)。 现在将这两个变量与if语句进行比较。
此致 Dheeraj
Mindfire Solutions,印度
答案 1 :(得分:0)
WebEdit
测试对象有助于阻止您在编辑字段中设置无效值。
你显然不希望这个帮助我不清楚的问题是你想要完成的事情。如果您想将字符串的第一部分设置为maxlength
,您可以执行以下操作:
Public Function SetLimit(ByRef test_object, ByRef Value)
max = test_object.GetROProperty("max length")
If Len(Value) > max Then
test_object.Set Left(Value, max)
Else
test_object.Set Value
End If
End Function
RegisterUserFunc "WebEdit", "Set", "SetLimit"
答案 2 :(得分:0)
您可以使用WScript shell对象将焦点发送到WebEdit (通过单击它)。如http://h30499.www3.hp.com/t5/Quality-Center-Support-and-News/QTP-cannot-input-value-to-Webedit-field/td-p/4206627#.UkRMyIbIYyg中所示:
Set WshShell = CreateObject("WScript.Shell")
Browser("Sarit_2").Page("Sarit").WebEdit("frm_vendor_address1").Click
WshShell.SendKeys(dtVAdd1)
Set WshShell = Nothing
请注意,dtVAdd1
的值必须符合SendKeys
期望的格式 - 如(例如)http://msdn.microsoft.com/en-us/library/8c6yea83(v=vs.84).aspx中所述。
或者,您可以使用未记录的Mercury.DeviceReplay界面发送击键。这很容易上网。
答案 3 :(得分:0)
我们知道WebEdit不支持Type方法,我们可以使用像
这样的替代方法 1的的SendKeys 强>
设置objClick = CreateObject(" WScript.Shell")
浏览器(" Sarit_2&#34)页。("沙立&#34)WebEdit。(" frm_vendor_address1&#34)。按此
objClick.SendKeys" dtVAdd1"
设置objClick = Nothing
http://www.ufthelp.com/2013/02/sending-keyboard-strokes-in-uft-115.html
2.使用原生对象属性 浏览器(" Sarit_2")。页面(" Sarit")。WebEdit(" frm_vendor_address1")。object.value =" dtVAdd1" 但这与Set方法
几乎相似3.在UFT中使用提前运行设置
工具 - >选项 - > GUI测试 - >网络 - >高级 - >运行设置 - >重播类型 - >鼠标