Hello friends 
I have looked up many topics over here about regex and similar stuff but still no solution.
So here my problem:
Iâm testing an angular web-application with katalon right now, and there is one Element that makes me freaking out:
If I right click on a radio-button and open the so called context-menu I have 4 options, as you can see in the picture below:
Everytime I want Katalon to click on the 4. option it could not find it, cause the elements are newly generated each time. (The options 1 - 3 are working each time some how, and i donât now why)
I saved the object several times with Object Spy.
One time the xpath looked like this:
//div[@id='mat-menu-panel-1']/div/div/a[4]
and another time:
//div[@id='mat-menu-panel-3']/div/div/a[4]
So the id is not everytime the same.
As I found some topics over here with a similar problem, I got the idea of using regex.
I tried to match the xpath with the following regex:
//div\[@id='mat-menu-panel-(\d)']/div/div/a\[4]
Looks good so far: https://regex101.com/r/Nzx8Kl/13
But Katalon is still not able to find the element.
Or is Katalon just still not able to handle Angular?
(as I read in other topics there have been difficulties)
Hope to get some help,
thank you!
Simon
Personally, I think you are almost there. I donât use Angular but I do use RegEx occasionally. And may I suggest to escape the opposing square bracket like you did the first, like:
id('mat-menu-panel-\\d')/div/div/a\\[4\\]
Note: I also used another form of xpath since you have an id and it gets rid of one set of square brackets. Also, Iâm not sure about escaping the back-slashes in the pathway.
This would never work. You can not use Regular Expression in this way. You should forget about Regexp here.
I would suggest you to try the following XPath expression:
//div[starts-with(@id, 'mat-menu-panel-')]/div/div/a[4]
See
https://www.guru99.com/xpath-selenium.html#8
to learn more about XPath.
Hi thank you both for your help!
The xpath I got from you kazurayam worked! Awesome!!
But just because Iâm interested:
Why?
I mean the option is called âmatches regexâ⌠so this is not quite intuitive, if regular expressions actually wont (never?) work.
Up until now, I wasnât aware that Katalon actually proposes an option âmatch regexâ with value â//div[@id=âmat-menu-panel-(\d)â]/div/div/a[4]â. I was surprised to find a regex-like notation (\d).
I havenât seen it before. It seems that (\d) was recently added. I havenât ever studied it. I think, this âRegex-flavored locatorâ syntax is something new, and not officially documented/announced at all.
I am afraid, it could be buggy. I have an opinion that this would NEVER work, though I would not bother describing it here. If you are interested, pls have a look at my discussion at another post.
At least I would not use âmatch regexâ as I know how to write effective XPath expressions without using regex-like things. For example, see another topic TestObject that match IP Address-like string
@ThanhTo
âmatch regexâ as Regex-powered XPath-like locator â is it officially released already? It looks experimental to me.