机械手框架,Clink链接不处理带有“ =”的链接,并导致“找不到与定位器的链接”

时间:2018-09-28 10:51:54

标签: xpath robotframework

我有一个无法解决的问题。我正在尝试导航为(我对此做了一点匿名,使用Crome插件“ Robotcorder”来捕获)

Click Link   //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"]

,但总是失败,并显示“未找到与定位器的链接”。

我测试过:

  • 点击元素
  • 用“%3D”替换“ =“”
  • 默认= https ...
  • link = https
  • ...

如果已经在网上搜索了,发现了很多建议并尝试对它们进行测试。

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

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

1 个答案:

答案 0 :(得分:2)

Click Link documentation出发:

  

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

由于您未指定定位器策略,因此漫游器将尝试找到ID,名称或href完全匹配字符串“ // a [@href = ...””的链接。由于您提供的不是ID,名称或href,因此找不到您的链接。

如果您想使用xpath查找链接,则需要告诉关键字您为其赋予了xpath。对于较旧版本的硒库,您应将其前缀为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属性,以使其易于测试。