To select elements by class using XPath we can match the @class
attribute using contains()
function or the =
operator.
For example, to select <a class="link"></a>
we could use //a[@class="link"]
or //a[contains(@class, "link")]
selectors. See this interactive example:
Note that using contains()
might match partial matches. For example, disabled-link
would be matched by our contains(@class, "link")
selector.
To match by a single class we can use contains(concat(" ", normalize-space(@class), " "), " match ")
pattern:
Tip: If you're using Python's parsel
package then there's an equivalent shortcut has-class()
. For example, //a[has-class("link")]