A way to match on text using CSS locators
So I use xpath locators and slowly converting to CSS.
I haven't found a way to do an exact match based on text.
For example converting
I know you can do
css=a:contains('Log Out')but I want to match exactly to the text. Also I know I can do
link=Log Outbut looking for a solution with CSS.
css=a[text='Log Out'] or a[innertext='Log Out']
Can you please try this one out?
Or if that doesn't work and you still don't want to use xpath because it's slow, you can always try:
link=Log Out. That's still better then xpath.
So i found a possible solution for you mate. If you are trying to find an exact String you could always use Regular expression like this:
Just replace div with a and there you go. This will find ONLY AB in whatever text div it looks for. OFC if you have more then one links with text AB (which is a bad thing :P ) then it will find them all..
Try this and see if it helps. :)
Neither of those work unfortunately. I know I can use link=Log Out but just seeing if there was a solution in CSS.
Sorry to hear that :( Unfortunately I don't think CSS has match exact param. But I might be mistaken. Hope you find an answer soon mate. :) Cheers.
Wow, that worked! I really didn't think it would. Nice job proving me wrong.
I tried both single quote /double quote around the search text but don't get it working. Did I miss something :-/ I was using Selenium IDE to test my locator
Ooh... Yeah.. This probably only works when using the RC. I don't know 'bout the IDE. It doesn't have much of the support of programming languages. :(
:contains() is not part of the current CSS3 specification so it will not work on all browsers, only ones that implemented it before it was pulled. (see http://www.w3.org/TR/css3-selectors)
This is a nice place for a few CSS selectors.
Thought it might be useful for people following this thread.
For those who are looking to do Selenium css text selections this script might be of some use
Trick is to select parent of element of one that you are looking for and then search for child that has the text.
this will return first element if there is more than one since it's always one element in my case.