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,是的,逃脱斜杠是在抓救命稻草(它不应该起作用)我想知道以前出了什么问题。。。