As the title says, is it possible to select elements in XPath that only begin with a certain string, but perhaps do not end with the same?
For example there are 3 anchor elements:
<a href="buy.php/onething"></a><a href="buy.php/twothing"></a><a href="sell.php/anotherthing"></a>
I only want to get anchor elements that begin with 'buy.php/'. I don't think the following will work, will it:
getByXPath("//a[@href='buy.php/']")
How can I do this?
Use the index to get desired node if xpath is complicated or more than one node present with same xpath. You can give the number which node you want.
We can identify elements by partially comparing to its attributes in Selenium with the help of regular expression. In xpath, there is contains () method. It supports partial matching with the value of the attributes. This method comes as useful while dealing with elements having dynamic values in their attributes.
//a[starts-with(@href, 'buy.php/')]
http://www.zvon.org/xxl/XSLTreference/Output/function_starts-with.html
Not sure if this is exactly the correct syntax but you probably want to use the fn:contains xpath function. Other useful functions you can find here:
http://www.w3schools.com/xpath/xpath_functions.asp#string
getByXPath("//a[fn:contains(@href/text(), 'buy.php/')]")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With