Как печатать в текстовое поле генерируется динамически - PullRequest
0 голосов
/ 23 декабря 2018

Я пытаюсь ввести данные в динамически генерируемое текстовое поле, но получаю следующую ошибку:

Не удается найти элемент пользовательского интерфейса, соответствующий этому селектору: <webctrl id='dp1545483054838' tag='INPUT' />

Действия по воспроизведению проблемы:

  1. Перейти на www.mockaroo.com
  2. Переименовать пол на дату
  3. Нажмите нав поле «Пол» в поле «Тип» и введите дату в поиске, а затем выберите «Дата»

. Отобразятся два поля от даты и до даты (сгенерированные динамически).Я хочу изменить дату в этих полях.

1 Ответ

0 голосов
/ 06 января 2019

Как и в комментариях, у меня не было проблем с созданием селектора для целевых полей даты start of range или end of range.

Однако на практике, поскольку форма является динамической, идентификаторыполя будут меняться каждый раз, когда вы загружаете страницу или вводите новое поле, поэтому я не рекомендовал бы использовать идентификатор для выбора поля.

Я немного побаловался на странице, чтобы почувствовать это, и вотлакомые кусочки, которые я заметил, могут вам помочь.Не видя образца того, что вы уже пробовали, это лишь предположение о том, чего вы пытаетесь достичь.


По умолчанию Ui Explorer генерирует следующее

<html app='chrome.exe' title='Mockaroo - Random Data Generator and API Mocking Tool | JSON / C*' />
<webctrl id='dp1546757265980' tag='INPUT' />
  1. Убедитесь, что вы находитесь в области действия вашего селектора, если вы хотите, чтобы он был относительным, или убедитесь, что вы правильно определяете правильную иерархию, если используете абсолют.
  2. Определите хорошую иерархию и несколько атрибутов для использованияэто позволит вам указать нужное поле, не используя атрибуты или значения, которые являются слишком неоднозначными или никогда не будут одинаковыми дважды

Первое, что я заметил для полей даты начала и окончания, этоу них есть title атрибут start of range и end of range значения соответственно.Я думаю, что это было бы хорошим началом, для себя я включил еще несколько атрибутов.

<webctrl tag='INPUT' aaname='start of range' name='*min_date*' parentclass='options' parentid='fields' />

Если подумать об этом еще дальше, из-за природы формы у вас может быть несколько полей параметров, которыеотносятся к типу Date, поэтому я привязал свой селектор к полю имени date, чтобы убедиться в правильности выбранных параметров.

При добавлении привязки я заметил, что после изменения поля имени с "пол"«до» даты, когда HTML-код не обновил значение, чтобы отразить это, поэтому он все еще имел исходное содержимое

<input placeholder="enter name..." class="column-name form-control" spellcheck="false" type="text" value="gender" name="schema[columns_attributes][4][name]" id="schema_columns_attributes_4_name" uipath_custom_id="1">

Поэтому вместо того, чтобы вводить в заблуждение во второй раз, когда я выбирал / привязывал поле Имя,добавил действие Find Element и создал выходную переменную элемента пользовательского интерфейса для передачи другим действиям.

Пример проекта XAML

...