'XPath for element by attribute value in Selenium?

For the following HTML:

enter image description here

Why does the following XPath doesn't work:

//option[value='0']

Is it related to value or to option element?



Solution 1:[1]

//option[value='0']

is not a valid selector incase you are attempting to identify/select the respective <option> element using Selenium.


Solution

You can use either of the Locator Strategies:

  • xpath:

    //option[@value='0']
    
  • css_selector:

    option[value='0']
    

tl; dr

Why should I ever use CSS selectors as opposed to XPath for automated testing?

Solution 2:[2]

Your current xpath is searching for an option element with a child element value which in turn has contents 0. What you actually want to find is an option element with an attribute value with value 0:

//option[@value='0']

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 kjhughes