#FeatureBlog - 19.10 - Fuzzy string matching for your selectors

What’s new?

Fuzzy string matching is a technique to search strings which are not a 100% match and match the specific pattern approximately, rather than exactly.

Let’s begin

Let’s say I want to create a selector which needs to be resilient to user typos or similar user input with a key work I expect to be entered a search field.

  1. First, I have opened up a bing.com in my borwser and searched for ‘uipath certification‘ text:

  2. When I get a selector for the input field, the ‘title’ attribute will contain the searched text and the selector is valid:

  3. However, if the user enters the text with typos or not the exact expected text, the selector becomes invalid and my automation will fail:

  4. Lucky for me, the new fuzziness options are available and I can add them into the selector to make the selector smarter and more resistant to these changes:

    matching:title='fuzzy' fuzzylevel:title='0.9'
    

  5. By decreasing the fuzziness level (closer to 0), I can tune my selector to match lower similarities, while values closer to 1 will match higher similarities. In the example below, my fuzzy selector matches similar text (e.g ‘uipath certification exam’ vs the one included in the selector’s title attribute (e.g. ‘uipath certification’):

That’s it for this #FeatureBlog

Please provide your valuable feedback about this feature! Our product team is hungry to build upon the basic functionalities so feed them your ideas :slight_smile:

Don’t be shy, click on image and tell us what you think or do it directly from Studio image !
As always, thank you for reading and happy automating!

26 Likes

Awesome feature to have… great work… :grinning::grinning:

2 Likes

@loginerror

Awesome :grinning:… Thanks for sharing this new feature with us.

I have one issue. We automated one web application and used Test environment. And now we moved to production and using Production environment. Now we observed that many of the selectors got changed in production and some selectors remains same but some of the attribute values are in Capital letters in production application elements and where as small letters in Test environment elements. Because of this, BOT not able to identify elements and selectors becomes invalid. Is there any solution for this without changing selectors ?

5 Likes

Hi @lakshman

Am I reading this correctly?

  1. You have project opened on the Test environment.
  2. You copy it over to the Prod environment
  3. You open it on the Prod environment.
  4. You now have two projects opened side by side and the selectors are different?
3 Likes

@loginerror

No.

  1. we automated one of the client application using their application Test environment and it’s working fine and now client got satisfied with outcome of that project and planning to move the code to production. The application has two different environments like Test and production.

  2. Both Test and production application looks same but selectors are changing from Test to production environment.

  3. we are decided to change some selectors and got work to move it to production. But as we observed some of the selectors got failed because of case sensitive.

For Example,

In Test environment, selector of the element is like below:

        Title='internet explorer'

Where as in Production environment, selector of the element is like below:

         Title='INTERNET EXPLORER'
2 Likes

It looks like the perfect scenario for this new feature :open_mouth: Unfortunately, I’m not sure how to solve it on an earlier version - it would indeed require you to redo the selectors.

So annoying :confused:

3 Likes

@loginerror

Ok. I am changing one by one selector :frowning::frowning:

2 Likes

@lakshman - case sensitiveness in the selectors is a feature that we are into. By then, you can use variables in the selectors and switch values at the beginning of your workflow, based on the execution environment

3 Likes

@gheorghestan @loginerror

Thank you. Eagerly waiting for this new feature. It will be very helpful for all of us.

1 Like

@loginerror

Really this is awesome feature. :slight_smile: By using this feature we can avoid many selector issues related to environment change.

1 Like

Hi! I have just watched one of the technical webinars and this feature was explained, but I was not able to understand exactly how does that work?

I mean, it is clear to me that now I’ll be able to match selectors with typos and some differences depending on the specified “fuzzy level”. What I still don’t get is: what is the criteria used to determine the fuzzy level? How do I know (besides testing it) if this typo requires a parameter of 0.8 or 0.6? And can I combine Wildcards and Fuzzy features within the same selector?

@wesalencar

Fuzzy matching is based on the Levenshtein distance (https://en.wikipedia.org/wiki/Levenshtein_distance). Unless you are very familiar with this concept, the only option available now for finding the fuzzy level, is testing. For the future, we plan to implement a visual way of computing the fuzzy level, when writing the selector.
The ‘*’ char and fuzzy search cannot be combined.

Hope this helps
Gheorghe

4 Likes

I’m not familiar with it today, but based on your answer now I can get into it. (: Very helpful, thanks!

Awesome, more selector options. Uipath keeps becoming better and better :smiley:

Hello, I am new to UiPath, just completed foundation course and trying to understand more about selectors. I read the enhanced selectors topic but somehow it is not comprehensive to me. I think I got the concept but, not sure about real case scenario. In the example here, are you using “matching:title” for the text you input ? I got little confused because isn’t the search box going to search whatever you pass there?
Thanks in advance, for your help.

I think that an option to return the element with the highest fuzziness level above a threshold value would be very useful