我在QTP中使用视觉关系标识符来设置webedit中的值。这是我的代码
Set rc = VisualRelations.Create
Set relation = rc.Add
relation.relatedobjectpath = "Browser(""ABC"").Page(""XYZ"").WebElement(""innertext:=E-Mail ID"")"
relation.relativeposition = micRelLeft
relation.setargument micrelinline, True
Set des=Description.Create
des.Add "micclass","WebEdit"
des.Add "visual relations",rc
Browser("ABC").Page("XYZ").WebEdit(des).set "qtpuser@abc.com"
Set relation = Nothing
Set rc = Nothing
问题是当我在第3行使用webElement的描述编程时,QTP显示错误消息“无法找到”webedit“对象父”。但是,当我在OR中存储webelement“电子邮件ID”时,代码工作正常,没有任何错误。
请您告诉我在这种情况下我该怎么办才能解决问题。 在此先感谢:)
答案 0 :(得分:1)
QTP中似乎存在一个限制,即VRI中的锚测试对象必须位于对象存储库中。
值得庆幸的是,有一种解决方法,您可以在OR中创建一个虚拟锚测试对象,其中包含空白 innertext 的描述(通过使用定义新测试对象按钮)。
然后使用SetTOProperty
获取您可以通过描述性编程实现的动态行为。
Set rc = VisualRelations.Create
Set relation = rc.Add
Browser("ABC").Page("XYZ").WebElement("Anchor").SetTOProperty "innertext", "E-Mail ID"
relation.relatedobjectpath = "Browser(""ABC"").Page(""XYZ"").WebElement(""Anchor"")"
relation.relativeposition = micRelLeft
relation.setargument micrelinline, True
Set des=Description.Create
des.Add "micclass","WebEdit"
des.Add "visual relations",rc
Browser("ABC").Page("XYZ").WebEdit(des).set "qtpuser@abc.com"
Set relation = Nothing
Set rc = Nothing
答案 1 :(得分:0)
存储WebElement"电子邮件ID"在OR中,其父页面("" XYZ"")也将存储在OR中。 问题是OR方式用于标识Page,但DP方式用于标识WebElement。如果删除WebElement"电子邮件ID"但仍然是页面(" XYZ"),脚本应该运行良好。