Issue finding reliable selector in single page angular application

I am trying to create a UIPath project that automates some job creation stuff in Microsoft Dynamics Great Plains Web Client. All that I need to automate is a fairly simple form entry, but I am not able to find reliable selectors so far. The web client app seems to be a single page Angular application that does not use IDs or specific data-attributes so I am not able to find reliable selectors. Angular seems to be storing any specific input info in javascript objects attached to each input. Every input selector seems to be defaulting to something like: webctrl parentid=‘a000000000000000056800083584c00030100000000f1550000000000’ tag=‘INPUT’ . These types of selectors have been causing many unreliable behaviors especially when there are dynamic popup windows like showing in the screenshot example. Even though the UI Explorer is able to pinpoint the input, it selects the wrong input sometimes while running the project.

First Question:
It is my understanding that this selector is using the “parentId” (which I am guessing is generated by UIPath looking at the DOM tree to count the nested DIVs and create this ID) and the fact the element is an INPUT. Is that where this “parentId” attribute is coming from and if so wouldn’t that be affected by dynamic HTML from popup windows in a single page app?

Second Question:
In cases like this one, what is the best practice? If I cannot find reliable selectors that will work through updates and other changes is it best to find another solution other than UI automation? Are reliable selectors not the foundation of a good reliable project that will be scalable moving forward?

Hi, did you ever find an answer for this? I am fairly new to UI Path and have come across the same thing with our first project, a SPA (Single Page Application). Its a little tricky to get going.

Thanks,

Ben

Hi @B3ndy @mtu

I would suggest to try the Indicate Anchor option. First indicate the input field, and then click the Indicate Anchor button and indicate the text next to it
image

There is no good solution. Without good selectors, we were forced to use images-based selectors for certain things. This worked overall to complete the automation, but I am sure there will be issues when there are app upgrades for GP Web Client. We have a working project, but it will not be scalable or reliable through changes. The premise of UI Path is broken within Angular apps since most of the time Angular will not have selectors available by design. JavaScript observables are used instead of html attributes for client side changes in Angular apps, so there will not be reliable selectors in some cases. Honestly, I see this issue as a huge roadblock to using UI Path effectively with Angular apps.

1 Like