Vbscript Can';无法通过URL识别帧
我使用Vbscript Can';无法通过URL识别帧,vbscript,automation,automated-tests,qtp,Vbscript,Automation,Automated Tests,Qtp,我使用getroperty方法获取框架的URL和HTML ID,并使用相同的值通过描述性编程识别对象 QTP使用HTML ID标识对象,但当它使用URL标识其显示时 无法识别类Frame的对象“[Frame]”。核实 此对象的属性与当前显示在应用程序中的对象匹配 应用程序 第(24)行:“打印浏览器(“SAP-[Search:Accounts]”)。窗口(“合作伙伴选择文档”)。页面(“合作伙伴选择文档”)。框架(“url:=”&rourl)。GetROProperty(“html id”)”
getroperty
方法获取框架的URL和HTML ID,并使用相同的值通过描述性编程识别对象
QTP使用HTML ID标识对象,但当它使用URL标识其显示时
无法识别类Frame的对象“[Frame]”。核实
此对象的属性与当前显示在应用程序中的对象匹配
应用程序
第(24)行:“打印浏览器(“SAP-[Search:Accounts]”)。窗口(“合作伙伴选择文档”)。页面(“合作伙伴选择文档”)。框架(“url:=”&rourl)。GetROProperty(“html id”)”
在或中,QTP仅使用URL标识帧,而不使用任何其他属性
以下是涉及的代码行:
rourl=Browser("SAP - [Search: Accounts]").Window("Partner Selection Document").Page("Partner Selection Document").Frame("Frame").GetROProperty("url")
print rourl
roid=Browser("SAP - [Search: Accounts]").Window("Partner Selection Document").Page("Partner Selection Document").Frame("Frame").GetROProperty("html id")
print roid
print Browser("SAP - [Search: Accounts]").Window("Partner Selection Document").Page("Partner Selection Document").Frame("html id:="&roid).GetROProperty("html id")
'prints html id
print Browser("SAP - [Search: Accounts]").Window("Partner Selection Document").Page("Partner Selection Document").Frame("url:="&rourl).GetROProperty("html id")
'shows error message
框架的url为http://part1.part2.part3.part4.com:8082/sap(BD1TIZJPTUWMCZPPTEMZT1WRVZUVKY5RK1RVKJWVLJQTVRJM01USMZWY3GXMLR4AUNVRGBSUFBQ2HVD2NNJTNKJTNKNKNK)/bc/bsp/sap/crm_ui_frame/bspwdapplication.do?弹出名称=_POPUP0001&wcf请求票证=929D13152F6D62ACF1AB51BD8BDC2819
我已将url修改为
http://part1\.part2\.part3\.part4\.com:8082/sap\(BD1TIZJPTUWMCZPPTEMZT1WRVZUVKY5RK1RVKJWVLJQTVRJM01USMZWY3GXMLR4AUNVRGBSUFBQ2HVD2NNJTNKJTNKNKNKNK\)/bc/bsp/sap/crm_ui_frame/bspwdapplication\.do\?弹出名称=_POPUP0001&wcf请求票证=929D13152F6D62AF1AB5D8BDC2819
但仍不确定
rourl="http://part1\.part2\.part3\.part4\.com:8082/sap\(bD1FTiZjPTUwMCZpPTEmZT1WRVZUVkY5Rk1rVkJWVlJQTVRJM01USmZWY3gxMlR4aUNVRGhBSUFBQ2hvd2NnJTNkJTNk\)/bc/bsp/sap/crm_ui_frame/bspwdapplication\.do\?popup-name=_POPUP0001&wcf-request-ticket=929D13152F6D62ACF1AB51BD8BDC2819"
Browser("SAP - [Search: Accounts]").Window("Select Transaction Type").Page("Select Transaction Type").Frame("url:="&rourl).GetROProperty("html id")
问题可能是由于描述性编程使用正则表达式,而对象存储库默认不使用正则表达式 URL可能包含特殊字符,这些字符在作为正则表达式查看时具有不同的含义。 URL中最明显的正则表达式特殊字符是
和?
。我认为您的?
有问题(因为
匹配”
,但它可能会导致歧义
试试这个:
Function EscapeRegex(str)
str = Replace(str, "?", "\?")
str = Replace(str, ".", "\.")
EscapeRegex = str
End Function
print Browser("SAP - [Search: Accounts]").Window("Partner Selection Document").Page("Partner Selection Document").Frame("html id:="& EscapeRegex(roid)).GetROProperty("html id")
如果这不能解决您的问题,请在EscapeRegex
函数中添加特殊字符,如果您仍然无法使其工作,请发布导致此问题的示例URL
以下是特殊正则表达式字符的(部分?)列表供参考:
[].*?+^$(){}\
(这里是)。问题可能是由于描述性编程使用正则表达式,而对象存储库默认情况下不使用正则表达式
URL可能包含特殊字符,这些字符在作为正则表达式查看时具有不同的含义。
URL中最明显的正则表达式特殊字符是
和?
。我认为?
有问题(因为
匹配”
,但它可能会导致歧义
试试这个:
Function EscapeRegex(str)
str = Replace(str, "?", "\?")
str = Replace(str, ".", "\.")
EscapeRegex = str
End Function
print Browser("SAP - [Search: Accounts]").Window("Partner Selection Document").Page("Partner Selection Document").Frame("html id:="& EscapeRegex(roid)).GetROProperty("html id")
如果这不能解决您的问题,请在EscapeRegex
函数中添加特殊字符,如果您仍然无法使其工作,请发布导致此问题的示例URL
以下是特殊正则表达式字符的(部分?)列表供参考:
[].*?+^$(){}\
(这里是)。我已经更改了url以转义特殊字符。但我仍然收到相同的错误。请通过更新的问题了解更多详细信息。@rijinrv可能也尝试转义前斜杠\/
,否则我不知道:(它现在起作用了..谢谢你的回答..我没有逃脱前斜杠..但它仍然起作用..@rijinrv,是的,逃脱斜杠是在抓救命稻草(它不应该起作用)我想知道以前出了什么问题…我更改了url以转义特殊字符。但我仍然收到相同的错误。请通过更新的问题了解更多详细信息。@rijinrv也许也可以尝试转义正斜杠\/
,否则我不知道:(它现在起作用了..谢谢你的回答..我没有逃脱前斜杠..但它仍然起作用..@rijinrv,是的,逃脱斜杠是在抓救命稻草(它不应该起作用)我想知道以前出了什么问题。。。