Validate that Value in a Field is in range of two boundaries

Best practices, code snippets for common functionality, examples, and guidelines.
tingelcore
Posts: 10
Joined: Thu Jul 27, 2017 11:04 am

Validate that Value in a Field is in range of two boundaries

Post by tingelcore » Tue Nov 07, 2017 10:16 am

Hello,

I have a testcase where I need to validate, that the given value is in between given boundaries. Like there is a pop up with a price. This price has to be let's say in between 10-1000$. How do I validate this? I tried to set the value in Ranorex to "10-1000" but "573" is not "10-1000".
The field only allows numeric values. So the validation on this value is possible. It's not a simple textfield. Actually the Javaobject is Called QSpinner.

Thanks and greetings,
Björn

User avatar
odklizec
Ranorex Guru
Ranorex Guru
Posts: 3946
Joined: Mon Aug 13, 2012 9:54 am
Location: Zilina, Slovakia

Re: Validate that Value in a Field is in range of two boundaries

Post by odklizec » Tue Nov 07, 2017 10:29 am

Hi Björn,

At first, it would be very useful if you would post a Ranorex snapshot (not screenshot) of the problematic element.

At second, I think you will simply have to write some code to validate that the number is within a certain range. RegEx could be an option too, so then you may not need to use code at all. Just Validate action with AttributeRegEx parameter.

As for the code for checking a number is within a range, I would suggest to examine this post:
https://stackoverflow.com/questions/318 ... in-a-range
Pavel Kudrys
Ranorex explorer at Descartes Systems

Please add these details to your questions:
  • Ranorex Snapshot. Learn how to create one >here<
  • Ranorex xPath of problematic element(s)
  • Ranorex version
  • OS version
  • HW configuration

tingelcore
Posts: 10
Joined: Thu Jul 27, 2017 11:04 am

Re: Validate that Value in a Field is in range of two boundaries

Post by tingelcore » Tue Nov 07, 2017 10:55 am

Hi,
thanks for the quick reply. I made a Snapshot from the Object Spy. It is 1.4MB and too big to upload here.

But for your suggestion with the Regex Validation. It would look something like "[@Value>=10 and @Value<=1000]". I will test this. If it won't work I'll use a Code Module for this Validation. The code module shouldn't be too hard.


Thanks,
Björn

User avatar
odklizec
Ranorex Guru
Ranorex Guru
Posts: 3946
Joined: Mon Aug 13, 2012 9:54 am
Location: Zilina, Slovakia

Re: Validate that Value in a Field is in range of two boundaries

Post by odklizec » Tue Nov 07, 2017 11:00 am

Hi,

You can always upload the snapshot using onedrive, google drive or similar service and here post a link ;)

The regex you are looking for should be something like this:

Code: Select all

^([1-9][0-9]{1,2}|1000)$
Pavel Kudrys
Ranorex explorer at Descartes Systems

Please add these details to your questions:
  • Ranorex Snapshot. Learn how to create one >here<
  • Ranorex xPath of problematic element(s)
  • Ranorex version
  • OS version
  • HW configuration

tingelcore
Posts: 10
Joined: Thu Jul 27, 2017 11:04 am

Re: Validate that Value in a Field is in range of two boundaries

Post by tingelcore » Wed Nov 08, 2017 10:05 am

Hi,
sorry for the late reply. I tested around with regex but the actual range in the element would be more like 100,000-50,000,000 and doing this with regex is a pain. 10-1000 was a sample for simple understanding. :D

So I thing doing it with a code module is better since the regex would simply be unreadable for everyone else.

I got just one problem and my element is recognised as a container and I don't know how to get the value of it in the code module. Because the container does not have a method for "getValue" or something like this.

I uploaded the Snapshot on my googledrive: https://drive.google.com/open?id=1Oq_KV ... rfRaLnA8Be

Greetings
Björn

User avatar
odklizec
Ranorex Guru
Ranorex Guru
Posts: 3946
Joined: Mon Aug 13, 2012 9:54 am
Location: Zilina, Slovakia

Re: Validate that Value in a Field is in range of two boundaries

Post by odklizec » Wed Nov 08, 2017 10:20 am

Hi,

I agree that validating such wide numeric ranges would be quite painful with regex ;) Doing it code would be easier then.

As for extracting the number from given container, GetValue action should work just fine? You don't even have to use it in code. Simply add the GetValue action to recording of your choice, point it to given repo element and store the obtained value in new recording variable. The number you are looking for seems to be stored in Value attribute:
Spinner_Value.png
Spinner_Value.png (71.69 KiB) Viewed 496 times
Then simply add new UserCode action, in which you can validate if the number is in expected range. Of course, you will first need to convert the recording variable (the one holding the obtained number) to integer/long, because recording variables are always strings! For this you should use Parse or TryParse method.
Pavel Kudrys
Ranorex explorer at Descartes Systems

Please add these details to your questions:
  • Ranorex Snapshot. Learn how to create one >here<
  • Ranorex xPath of problematic element(s)
  • Ranorex version
  • OS version
  • HW configuration

tingelcore
Posts: 10
Joined: Thu Jul 27, 2017 11:04 am

Re: Validate that Value in a Field is in range of two boundaries

Post by tingelcore » Wed Nov 08, 2017 10:31 am

Hi,

Okay I will try this. So I get the Value in a new variable and use this variable in my code?

greetings

User avatar
odklizec
Ranorex Guru
Ranorex Guru
Posts: 3946
Joined: Mon Aug 13, 2012 9:54 am
Location: Zilina, Slovakia

Re: Validate that Value in a Field is in range of two boundaries

Post by odklizec » Wed Nov 08, 2017 10:38 am

Yep. The variable obtained in recording module (via GetValue) action should be accessible in the UserCode of the same recording.
Pavel Kudrys
Ranorex explorer at Descartes Systems

Please add these details to your questions:
  • Ranorex Snapshot. Learn how to create one >here<
  • Ranorex xPath of problematic element(s)
  • Ranorex version
  • OS version
  • HW configuration

tingelcore
Posts: 10
Joined: Thu Jul 27, 2017 11:04 am

Re: Validate that Value in a Field is in range of two boundaries

Post by tingelcore » Wed Nov 08, 2017 10:42 am

Actually to add user code to the recording module I have to add it in my User Code Collection first, to add it later in the recording.

so within this Collection I now added a new Method for validation, but I don't see a way to add this variable.

User avatar
odklizec
Ranorex Guru
Ranorex Guru
Posts: 3946
Joined: Mon Aug 13, 2012 9:54 am
Location: Zilina, Slovakia

Re: Validate that Value in a Field is in range of two boundaries

Post by odklizec » Wed Nov 08, 2017 10:53 am

So create a method with string parameter, in which you can pass the recording module variable. Then simply assign recording variable to parameter of your method.
Pavel Kudrys
Ranorex explorer at Descartes Systems

Please add these details to your questions:
  • Ranorex Snapshot. Learn how to create one >here<
  • Ranorex xPath of problematic element(s)
  • Ranorex version
  • OS version
  • HW configuration

tingelcore
Posts: 10
Joined: Thu Jul 27, 2017 11:04 am

Re: Validate that Value in a Field is in range of two boundaries

Post by tingelcore » Wed Nov 08, 2017 10:59 am

Ohh I feel so stupid right now. Thank you very much. I got it.

What I did is, I created the step first in the recording and added the parameter afterwards, that was giving me an error obviously.

edit: The big problem with this was, that the window I use is temporary and because of that, the attributes are not recognised while the object is not open. I had to set everything up while the window is actually open.

anyways I got it now, thanks!