我有一个无法解决的问题。我正在尝试导航为(我对此做了一点匿名,使用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"]
,但总是失败,并显示“未找到与定位器的链接”。
我测试过:
如果已经在网上搜索了,发现了很多建议并尝试对它们进行测试。
如果我将链接粘贴到浏览器地址中,它将按预期导航。
该网页是围绕用于时间报告的某种Oracle框架构建的,我只想测试Robot WorkFramework以输入一周的时间。
答案 0 :(得分:2)
使用默认定位器策略时,将使用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属性,以使其易于测试。