Page 1 of 1

Discrepancy between Repository object and hard coded XPath

Posted: Wed Apr 30, 2014 3:27 pm
by wiktor.pajor
I have a repository item named CreateRx. When highlighted, this control is found without any problems.
When executing a simple click command on the same item, Ranorex finds another control in the application that is not in the same XPath.
Executing the same script, but with a hard coded XPath from the Repository, it finds the right control.

Repository Item
Ubik Base: "/form[@automationid='c92f2fb4abc249f98b2165ad8d529a31']"
Rooted Folder: FooterPanel
CreateRx: "toolbar[@automationid='639bddcdc6684543b02f3ed6f45a4807']/button[3]"

Code: Select all

var createRx = repo.Ubik.FooterPanel.CreateRx;
createRx.Click();

Code: Select all

Button createRxButton = repo.Ubik.AbsoluteBasePath.ToString() + "/toolbar[@automationid='639bddcdc6684543b02f3ed6f45a4807']/button[3]";
createRxButton.Click();
This is the control that Ranorex finds that is not correct:

Code: Select all

toolbar[@automationid='670fb5b849cb414aadada24cf0945f62']/button[2]
Any suggestions ?

Ranorex V. 5.0.2.17874
.Net Runtime Version 4.0.30319.18444
Windows 7 64bits

Re: Discrepancy between Repository object and hard coded XPath

Posted: Tue May 06, 2014 9:28 am
by Support Team
Hello wiktor.pajor,

Unfortunately I’m not exactly sure what’s causing this behavior, but I suggest that you modify your RxPath so you don’t need an index in order to identify the button.

You can use the text field that is stored as a child node of the button for identification.

E.g.:
/form[@automationid='c92f2fb4abc249f98b2165ad8d529a31']/toolbar[@automationid='639bddcdc6684543b02f3ed6f45a4807']/?/?/text[@name='Créer Rx']/..
This path refers to the parent element of the text field 'Créer Rx' which is equivalent to:
../toolbar[@automationid='639bddcdc6684543b02f3ed6f45a4807']/button[3]
Please let me know if that’s a suitable solution for you. :)

Regards,
Robert

Re: Discrepancy between Repository object and hard coded XPath

Posted: Mon Nov 03, 2014 3:35 pm
by wiktor.pajor
Hello Robert,

Sorry for the long reply delay.
This information migh be useful for someone.

I have Ranorex 5.0.2.17874 installed.

Refimid is located in the file .rxrep

This was my case where the search control failed.

Code: Select all

<item
name="SaveRx"
id="e90f9c55-8f48-4807-a55b-75dd36d3e0e6"
searchtimeout="30000ms"
capname="button"
refpath="/form[@automationid='c92f2fb4abc249f98b2165ad8d529a31']/toolbar[2]/button[@automationid='f20d7ebdb11447c8bcff9dc3455c94f7']"
addcaps="button,uiautomation,uiautomationinvoke"
refimgid="667695f7-4e59-4c7c-8985-29d7601a608b">
                /form[@automationid='c92f2fb4abc249f98b2165ad8d529a31']/?/?/button[@automationid='f20d7ebdb11447c8bcff9dc3455c94f7']
</item>
When I changed automationid='f20d7ebdb11447c8bcff9dc3455c94f7' to another id, the highlighting was fine.
refpath was also changed and it looks that everything was fine.
But, the toolbar id also changed and this made is impossible to find it at runtime.

This is the final control after the refactoring and putting “Simple” as the Ranorex XPath generation mode

Code: Select all

<item
name="SaveRx"
id="e90f9c55-8f48-4807-a55b-75dd36d3e0e6"
searchtimeout="30000ms"
capname="button"
addcaps="button,uiautomation,uiautomationinvoke"
refimgid="bcca3ffa-e44a-4b89-b2b8-238eb09d3064">
                /form[@automationid='c92f2fb4abc249f98b2165ad8d529a31']/toolbar[@automationid='5263a93a2e314639bf59272b83eaa16c']/button[@automationid='f20d7ebdb11447c8bcff9dc3455c94f7']
</item>
<item
We can see that this id is now explicit and looking at the right button.

You can correct me if I’m wrong, but it looks like the highlight from Spy or Ranorex Studio is not using the same path at runtime.

If this is the case, I don’t mind the different paths, but a warning or something that shows me that the paths might not match.

Wiktor

Re: Discrepancy between Repository object and hard coded XPath

Posted: Wed Nov 05, 2014 2:06 pm
by Support Team
Hello Wiktor,

May I ask you to contact [email protected]? We would like to analyze this issue in more detail.

Regards,
Robert