How to click a link whose href has a certain substring in Selenium?
java, selenium
Solution
I need to click the link whose href has substring "long" in it. How can I do this?
With the beauty of CSS selectors.
your statement would be...
driver.findElement(By.cssSelector("a[href*='long']")).click();
This means, in english,
Find me any 'a' elements, that have the `href` attribute, and that attribute `contains` 'long'
You can find a useful article about formulating your own selectors for automation effectively, as well as a list of all the other equality operators. `contains`, `starts with`, etc... You can find that at: http://ddavison.io/css/2014/02/18/effective-css-selectors.html
Problem
The following is a bunch of links `<a elements.` ONLY one of them has a substring "long" as a value for the attribute href ``` <a class="c1" href= "very_lpng string" > name1 </a> <a class="g2" href= "verylong string" > name2 </a> // The one that I need <a class="g4" href= "very ling string" > name3 </a> <a class="g5g" href= "very ng string" > name4 </a> ................... ``` I need to click the link whose `href` has substring "long" in it. How can I do this? PS: `driver.findElement(By.partialLinkText("long")).click();` // b/c it chooses by the name