Find Element activity not consistent for Oracle Apps HTML based pages


#1

I am trying to build a use case for Oracle Apps HTML Pages (not oracle forms). So it should follow the basic web automation principal.

Scenario: I want to set the organization and check back if the organization is set properly by retrying 3 times.

image

Now as per the above image where is what I am doing:

  1. Find elements the Organization label, organization input and Go button with WaitForReady = Complete
  2. Get Text of the organization label
  3. IF the selected organization <> To be organization THEN
    Type Into Organization field
    Click Go button (which submit the same page)
    ELSE
    Selection successful. Stop.
    END IF
  4. Retry steps 1 to 3

Now for the first time of the loop, it is working fine and selecting the desired organization and setting it properly. But in the 2nd time getting error in type into or click:
Click - Organization go button : The UiElement is no longer valid

ideally it should not go for click activity in 2nd time as now the desired organization value is selected as shown below.
image

It seems the Find element is not waiting for the label to appear (in 2nd loop) when the page is refreshed after clicking the Go button.

Tried Steps:

  1. After the Click on Go button, I tried to use a dummy find element on a table in that page just to make sure the page refresh happen properly and wait for it. Did not work.

  2. Tried to put a delay of 2 sec after the click on go button. did not work.

  3. Tried to put a delay of 3 sec after the click on go button. Worked

Now the issue is how much dealy is appropriate? To avoid that, I am using find elements with WaitForReady = Complete but seems it is not working as expected.

Any solution or known issue for UiPath CE Studio 2018.2.3 version? Your help is appreciated.


Need to load 30K data from an excel to Oracle Web application
#2

Are you using Simulate click or Simulate Type ? if not can you give it a try …


#3

I have tried with Simulate option enabled and disabled but nothing works. It seems with the issue on Oracle apps HTML pages (OAF pages) they use partial page rendering and thus UiPath is able to finding the element.
But can not perform Type or Click operation on it.

i just want to know it is not a bug for Find Element activity.


#4

I dont think its a bug in find element. Since OAF’s would render partially as well, the Find element activity is triggred right away , and WaitforReady = Complete would not help out here because the page would be in ready status.

I think the activites are working as desigined … its just that we would need to find some anchor element which would help identify when the element is ready.

Let me try and see if i can get anything on it …


#5

You are right that Find Activity is working as expected but it can not handle PPR (Partial Page Rendering by OAF) like scenario as it finds the page status a ready.

For time being, I am putting some delay if it is the same page refresh. For a new page the Find Element is working as expected. Even I had to put some delay after type into a text field which has LOV associated with it. Need to check if the delay is required for Set Text activity.

It tried to put a Find element on an element which is part of the rendered portion of the page but it seems not working. May be it will work okay if WaitVisible property is checked but I can not do that as the process will run in background.

Please let me know if you find some better way.


#6

One more thing I have noticed that, The Find Element should be done after the PPR.

For example consider the below sequence:
1> Page loads for first time.
2> Find Element (a button) -> output as variable elementButton
3> Done a partial page rendering (PPR) on the form by clicking a LOV or something.
4> Now click on button element (elementButton)
It will throw error that is The UiElement is no longer valid but i have checked the selector of the button element is not getting changed. If I change the above sequence to as below, it works.

1> Page loads for first time.
2> Done a partial page rendering (PPR) on the form by clicking a LOV or something.
3> Find Element (a button) -> output as variable elementButton
4> Now click on button element (elementButton)

Not sure why it is working like it but it is a problem when working with Oracle Apps HTML pages. As the delay needs to be specified for the PPR event, it creates trouble.