首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过URL识别帧

无法通过URL识别帧
EN

Stack Overflow用户
提问于 2015-08-12 10:51:28
回答 1查看 186关注 0票数 1

我使用GetRoProperty方法获取框架的URL和HTML,并通过描述性编程使用相同的值来标识对象。

QTP使用HTML标识对象,但当它使用URL标识其显示时

无法识别对象“框架”(类框架)。验证此对象的属性是否与应用程序中当前显示的对象匹配。 行(24):“打印浏览器(”SAP-搜索:帐户“).Window(”合作伙伴选择文档“).Page(”合作伙伴选择.Page id")“。

在OR中,QTP使用URL标识帧,而不使用任何其他属性。

以下是所涉及的代码行:

代码语言:javascript
复制
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(bD1FTiZjPTUwMCZpPTEmZT1WRVZUVkY5Rk1rVkJWVlJQTVRJM01USmZWY3gxMlR4aUNVRGhBSUFBQ2hvd2NnJTNkJTNk)/bc/bsp/sap/crm_ui_frame/bspwdapplication.do?popup-name=_POPUP0001&wcf-request-ticket=929D13152F6D62ACF1AB51BD8BDC2819

我已将网址修改为

http://part1\.part2\.part3\.part4\.com:8082/sap\(bD1FTiZjPTUwMCZpPTEmZT1WRVZUVkY5Rk1rVkJWVlJQTVRJM01USmZWY3gxMlR4aUNVRGhBSUFBQ2hvd2NnJTNkJTNk\)/bc/bsp/sap/crm_ui_frame/bspwdapplication\.do\?popup-name=_POPUP0001&wcf-request-ticket=929D13152F6D62ACF1AB51BD8BDC2819

但仍未确定。

代码语言:javascript
复制
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")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-12 14:04:20

这个问题可能是因为描述性编程使用正则表达式,而对象存储库默认不使用正则表达式。

您的URL可能包含特殊字符,这些字符在作为正则表达式时具有不同的含义。URL中最明显的正则表达式特殊字符是.?。我认为?存在问题(因为."."匹配,但它可能导致歧义。

试试这个:

代码语言:javascript
复制
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函数,如果您仍然无法使它工作,请张贴一个样例网址,造成这个问题。

作为参考,这里有(部分?)特殊正则表达式字符列表:[]*.?+^$()|{}\ (这里是how it's done in javascript)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31963080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档