Xpath 机器人框架,叮当链接不处理带有“的链接”=&引用;结果是;未找到与定位器的链接";

Xpath 机器人框架,叮当链接不处理带有“的链接”=&引用;结果是;未找到与定位器的链接";,xpath,robotframework,Xpath,Robotframework,我有一个我没能解决的问题。我尝试导航为(我已经匿名了一点,使用Crome插件“Robotcorder”来捕获) 但它总是以“未找到与定位器的链接”失败 我测试了: 单击元素 将“=”替换为“%3D” 默认值=https link=https 当然,如果你在网上搜索,找到了很多建议,并试图测试它们 如果我将链接粘贴到浏览器地址中,它将按预期导航 该网页是围绕我们用于时间报告的某种Oracle框架构建的,我只是想测试Robot WorkFramework以进入一周时间。来自: 使用默认定位器

我有一个我没能解决的问题。我尝试导航为(我已经匿名了一点,使用Crome插件“Robotcorder”来捕获)


但它总是以“未找到与定位器的链接”失败

我测试了:

  • 单击元素
  • 将“=”替换为“%3D”
  • 默认值=https
  • link=https
当然,如果你在网上搜索,找到了很多建议,并试图测试它们

如果我将链接粘贴到浏览器地址中,它将按预期导航

该网页是围绕我们用于时间报告的某种Oracle框架构建的,我只是想测试Robot WorkFramework以进入一周时间。

来自:

使用默认定位器策略时,将使用id、名称、href和链接文本搜索链接

由于您没有指定定位器策略,robot将尝试查找id、名称或href与字符串“//a[@href=…”完全匹配的链接。由于您提供的不是id、名称或href,因此它将找不到您的链接

如果要使用xpath查找链接,需要告诉关键字您正在为其提供xpath。对于较旧版本的selenium库,您可以使用
xpath=
,对于较新版本,您应该使用
xpath:

例如:

Click Link  xpath://a[@href="https://xxx.yyy.com/psp/zzzzprd/EMPLOYEE/ERP/s/WEBLIB_PTPP_SC.HOMEPAGE.FieldFormula.IScript_AppHP?scname=XX_YYYYYY_TE_CENTER&FolderPath=PORTAL_ROOT_OBJECT.CO_AAAAA_BB_SERVICE.EP_SC_UU_BBBBB_TE_CENTER&IsFolder=false&IgnoreParamTempl=FolderPath%2cIsFolder"]
由于您仅使用href来标识链接,因此您可以通过提供href:

Click Link  href:https://xxx.yyy.com/psp/zzzzprd/EMPLOYEE/ERP/s/WEBLIB_PTPP_SC.HOMEPAGE.FieldFormula.IScript_AppHP?scname=XX_YYYYYY_TE_CENTER&FolderPath=PORTAL_ROOT_OBJECT.CO_AAAAA_BB_SERVICE.EP_SC_UU_BBBBB_TE_CENTER&IsFolder=false&IgnoreParamTempl=FolderPath%2cIsFolder
我鼓励您尝试找到一种更好的方法来识别该链接,而不是使用异常长、难以阅读的URL。例如,您或您的开发人员应该为该链接添加一个唯一的id或名称属性,以便于测试。

来自:

使用默认定位器策略时,将使用id、名称、href和链接文本搜索链接

由于您没有指定定位器策略,robot将尝试查找id、名称或href与字符串“//a[@href=…”完全匹配的链接。由于您提供的不是id、名称或href,因此它将找不到您的链接

如果要使用xpath查找链接,需要告诉关键字您正在为其提供xpath。对于较旧版本的selenium库,您可以使用
xpath=
,对于较新版本,您应该使用
xpath:

例如:

Click Link  xpath://a[@href="https://xxx.yyy.com/psp/zzzzprd/EMPLOYEE/ERP/s/WEBLIB_PTPP_SC.HOMEPAGE.FieldFormula.IScript_AppHP?scname=XX_YYYYYY_TE_CENTER&FolderPath=PORTAL_ROOT_OBJECT.CO_AAAAA_BB_SERVICE.EP_SC_UU_BBBBB_TE_CENTER&IsFolder=false&IgnoreParamTempl=FolderPath%2cIsFolder"]
由于您仅使用href来标识链接,因此您可以通过提供href:

Click Link  href:https://xxx.yyy.com/psp/zzzzprd/EMPLOYEE/ERP/s/WEBLIB_PTPP_SC.HOMEPAGE.FieldFormula.IScript_AppHP?scname=XX_YYYYYY_TE_CENTER&FolderPath=PORTAL_ROOT_OBJECT.CO_AAAAA_BB_SERVICE.EP_SC_UU_BBBBB_TE_CENTER&IsFolder=false&IgnoreParamTempl=FolderPath%2cIsFolder

我鼓励您尝试找到一种更好的方法来识别该链接,而不是使用异常长、难以阅读的URL。例如,您或您的开发人员应该为该链接添加一个唯一的id或name属性,以便于测试。

您给出的引用是xpath引用。尽管
//a[@href=“…”]
可能会起作用,它通常不是最坚固的引用。是否有一个具有唯一Id的父元素可以引用?例如
//div[@Id=“123”]//a
。您提供的引用是xpath引用。尽管
//a[@href=“…”]
可能会起作用,它通常不是最坚固的引用。可能有一个具有唯一Id的父元素可以引用吗?比如
//div[@Id=“123”]//a
。您好,谢谢您的回复。不幸的是,我是一个大组织的一部分,所以更改链接可能不是一个选项。下面是真正的链接:“'href:'未找到。”您好,谢谢您的回复。不幸的是,我是一个大组织的一部分,所以更改链接可能不是一个选项。下面是真正的链接:“'href:'未找到。”