How to select elements by text in XPath?

To select elements by text using XPath we can either match the text() value or use it in a contains() function.
For example, to select <a>websites</a> we would use //a[contains(text(), "website")] selector. See this interactive example:

<html> <a>ignore</a> <a>website</a> <a>WEBSITE</a> </html>

Note that contains() method is case sensitive.
For case-insensitive selections we can use matches (sometimes called re:test()) function:

<html> <a>ignore</a> <a>website</a> <a>WEBSITE</a> </html>

Provided by Scrapfly

This knowledgebase is provided by Scrapfly — a web scraping API that allows you to scrape any website without getting blocked and implements a dozens of other web scraping conveniences. Check us out 👇