Почему формат ctrlid, обнаруженный UiPath, отличается от документированного формата в их представлении XSLT? - PullRequest
0 голосов
/ 20 февраля 2019

Почему формат ctrlid, обнаруженный UiPath Studio , отличается от документированного формата их представлением XSLT ?

В настоящее время я работаю с UiPath для автоматизациинесколько рабочих процессов.

Сведения о среде:

  • Клиент SAP: IDES ECC 6,0 вкл.EhP7

  • Хост-машина: Процессор Intel Core i3 с 64-разрядной версией - система Windows 8.

Покапри попытке идентифицировать элемент в SAPTreeList / SAP's Advanced Treelist кажется, что UiPath обнаруживает ctrlid в следующих форматах:

  • <wnd ctrlid='74372104' />
  • <wnd ctrlid='59648' idx='1' />
  • <wnd ctrlid='59648' />
  • <wnd ctrlid='74937216' />
  • <wnd ctrlid='100' title='SAP&apos;s Advanced Treelist' />

Снимок:

SAP_Logon_750

В документации CtrlId в msdn.microsoft.com упоминается:

  • Значение CtrlIdатрибут ДОЛЖЕН варьироваться от 1 до 255 символов, ДОЛЖЕН начинаться с буквенного символа и ДОЛЖЕН содержать только буквы, цифры и символы подчеркивания.

  • Следующая XML-схема W3C (*Фрагмент 1070 * XMLSCHEMA1 ) определяет содержимое этого элемента.

    <xsd:element name="CtrlId" type="xsd:string"/>
    

Таким образом, формат ctrlid обнаружен UiPath Studio похоже отличается отm задокументированный формат и спецификация.

Я что-то здесь упускаю?

Согласно журналу Execution.log в этот вопрос :

Error {"message":"Click Text 'SAPTreeList': Cannot find the UI element corresponding to this selector: <wnd ctrlid='90279688' /><wnd ctrlid='100' title='SAP&apos;s Advanced Treelist' />","level":"Error","logType":"Default","timeStamp":"2019-02-06T13:16:44.295729+05:30","fingerprint":"bec67d2a-14d1-4b93-ac06-03156aea69fe","windowsIdentity":"AtechM-03\\AtechM_03","machineName":"ATECHM-03","processName":"LearningUiPath","processVersion":"1.0.0.0","jobId":"e7f88d9e-e485-4eee-8a54-7450771238f3","robotName":"ATECHM_03","machineId":0,"fileName":"Main"}

Сведения об ошибке также содержат следующие поля:

  • level
  • logType
  • timeStamp
  • fingerprint
  • windowsIdentity
  • machineName
  • processName
  • processVersion
  • jobId
  • robotName
  • machineId
  • fileName

Итак, мой вопрос:

  • Имеет ли ctrlid элемента имеют какую-либо зависимость от любого из этих параметров?
  • Является ли ctrlid элемента уникальным для каждой системы?
  • Является ли ctrlid динамический в том же jobId?

1 Ответ

0 голосов
/ 07 марта 2019

Я попытаюсь дать несколько ответов относительно того, как я понял вопросы:

  • Имеет ли ctrlid элемент какую-либо зависимость от любого из этих параметров?

    UiPath создает селектор, предоставляющий некоторые зависимости, которые не всегда являются оптимальными, поскольку некоторые из них могут динамически изменяться при каждом запуске приложения или загрузке другого элемента.Так что да, элемент имеет зависимости от этих конкретных параметров во время его создания (когда указано UiPath), но во время выполнения они могут измениться, что приведет к зависанию селектора

  • Isctrlid элемента, уникального для каждой системы?

    Некоторые ctrlid элементов уникальны для каждой системы по вашей ссылке на CtrlId

Значение этого атрибута ДОЛЖНО быть уникальным для каждого элемента управления кнопки и элемента управления изображением в форме.

  • Является ли ctrlid динамическим внутри одного и того же jobId?

В других случаях значение ctrlid может быть динамическим.В таких случаях в соответствии с вашим примером изображения (выделенные значения):

enter image description here

  1. Рекомендации UiPath рекомендуют избегать их использования при создании стабильного селектора
  2. Но если вы хотите использовать их, вам нужно либо использовать подстановочные знаки, чтобы сделать их динамическими (попробуйте '*'), либо извлекать динамическое значение каждый раз и использовать его в настройке селектора (попробуйте '+ dynamicValue +')
  3. В конце концов, вам всегда нужно проверять свои селекторы, методом проб и ошибок вы улучшите свое решение.

Надеюсь, вы найдете эту информацию полезной.

...