Ui-Path: как обрабатывать динамические веб-элементы
Я новичок в UIPath инструмент. Пожалуйста, примите мои извинения, если это плохой вопрос.
Мне нужно нажать \sendKeys веб-элемент, который является полностью динамическим элементом. ID будет меняться каждый раз при загрузке страницы.
Login 1: <span id="x58Sn0-cnt" class="z-tab-text" uipath_custom_id="8">Update</span>
Login 2: <span id="nT9Tn0-cnt" class="z-tab-text">Update</span>
Note:
Also we can't relay on class "z-tab-text" because so many other elements are sharing the same class.
заранее спасибо.:)
3 ответа
Вы можете обратиться к родительским элементам, чтобы получить правильный селектор, для этого вам следует использовать свойство css-selector вместо рассмотрения атрибута id html. Например, предположим, что динамический элемент всегда является первым дочерним элементом div, тогда вы можете использовать:
<webctrl css-selector='div span:first-child'/>
Синтаксис для свойства css-selector такой же, как и в селекторах элементов в листах CSS для файлов HTML.
Просто чтобы прокомментировать, вы также можете найти больше советов и обсуждений в UiPathForum, который полон знаний и обсуждения конкретных реализаций этого инструмента.
Лучше использовать Wildcards и idx, потому что это селекторы, используемые для помощи динамическим атрибутам. Подстановочные знаки - это символы, которые позволяют заменить ноль или несколько символов в строке. Они могут быть весьма полезны при работе с динамически изменяющимися атрибутами в селекторе.
Звездочка (*) - заменяет ноль или более символов Вопросительный знак (?) - заменяет один символ
**** Пример создания селектора с подстановочными знаками в окне редактора селектора ****
Часть имени окна "Блокнот" изменяется в соответствии с файлом.txt, который вы открываете вместе с ним. Здесь действительно может помочь грамотно расположенный шаблон. Для генерации сделайте следующее:
Откройте пустое окно Блокнота. Обратите внимание, что заголовок окна без названия - Блокнот. В Studio создайте новую последовательность. Перетащите упражнение "Тип в" на панель "Дизайнер". Нажмите Указать на экране и укажите редактируемое текстовое поле в Блокноте. Селектор автоматически создается и сохраняется в поле "Селектор".
На панели "Свойства" нажмите текстовую кнопку "Изображение эллипса" рядом с полем "Селектор". Откроется окно редактора селектора.
Откройте любой файл.txt с помощью блокнота. Обратите внимание, что заголовок окна частично отличается от заголовка на шаге 1. В Studio в окне "Редактор селектора" нажмите "Восстановить" и укажите редактируемое текстовое поле в окне "Блокнот", открытом на шаге 6. Появится диалоговое окно, указывающее, что селектор был обновлен. отображается.
Нажмите ОК. Окно редактора селектора и селектор обновляются подстановочным знаком. Для получения дополнительной информации смотрите раздел " Селекторы ссылок и селекторы с UI Explorer".
Я справился с этим сценарием с помощью idx
Я знаю, что это не рекомендуется для неудачных случаев, я пойду с изображением. Теперь это без сбоев.
Скорее всего, вам понадобится комбинация подстановочных операторов (*,?) И, возможно, атрибута aaname (text) в зависимости от вида. может быть что-то вроде этого:
<webctrl id="*-cnt" aaname="Update" />
Подстановочные знаки: если есть части вашего идентификатора, которые всегда будут одинаковыми, то по крайней мере подстановочный знак в селекторе несколько поможет в процессе выбора.
Звездочка (*) - заменяет ноль или более символов
Вопросительный знак (?) - заменяет один символ
Селекторы UIPath с документацией по шаблонам
Я бы порекомендовал пройти базовый тренинг для UIPath, так как он, кажется, немного помогает и бесплатен. Хотя, честно говоря, я считаю, что RPA не идеален для каждого использования веб-приложения, особенно когда используется высокодинамичный HTML и ненадежные селекторы. Приложения Angular & Knockout являются отличными примерами. Много раз Angular использует объекты javascript вместо определенных идентификаторов и атрибутов данных, к которым UIPath не имеет доступа, так что это создает среду, в которой вы должны проявить творческий подход с выбором селекторов, которые будут работать. Это также означает, что эти селекторы сломаются с небольшими изменениями кода.