Robot FrameWork, Clink Link не обрабатывает ссылку с "=" и приводит к "Ссылка с локатором не найдена" - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть проблема, которую мне не удалось решить.Я пытаюсь перейти как (я немного анонимизировал, использовал плагин 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 голосов
/ 28 сентября 2018

От Нажмите Документация по ссылкам :

При использовании стратегии локатора по умолчанию поиск выполняется по идентификатору, имени, href и тексту ссылки.

Поскольку вы не указали стратегию локатора, робот попытается найти ссылку с идентификатором, именем или ссылкой, которая точно соответствует строке "// a [@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.Например, вы или один из ваших разработчиков должны добавить в ссылку уникальный идентификатор или атрибут имени, чтобы упростить тестирование.

...