XPath is a powerful tool used in testing to locate specific nodes within the DOM . One common use case is locating nodes that contain specific text. This allows testers to efficiently pinpoint elements on a webpage without relying solely on element attributes. By mastering the art of wrangling XPath, testers can enhance their test automation capabilities and ensure accurate and reliable test results.

Using Contains and Starts-With Method

To locate nodes that contain specific text using XPath, you can utilize the contains() or starts-with() methods. The contains() method allows you to search for a partial match within the text of a node, while the starts-with() method enables you to find nodes with text that starts with a specific value. To use the contains() method, you can write the XPath expression like //element[contains(text(),'your_text')] . This will return all elements that contain ‘your_text’ within their text content. For the starts-with() method, the XPath expression should be //element[starts-with(text(),'your_text')] . This will match all elements whose text content starts with ‘your_text’. By applying these methods in your XPath queries, you can easily locate nodes that contain or start with specific text within the DOM

Examples

//h1[contains(text(), “My Calendar”)]

//h1[starts-with(text(), “My”)]

//h1[text() = “My Calendar”)]

//h1[text() = “My Calendar”)]/following-sibling::h2[contains(text(), “January”)]

Further Reading

  • XPath Cheat Sheet for Testers
  • MDN Contains documentation
  • XPath for the Everyday Tester
  • Helpful Tools

    Test your XPath in Chrome or Firefox Javascript Console

    $x(“my xpath”)

    Here’s an example of grabbing the Google logo via the Javascript Console. Just type your query in there and press enter to see the results.

    Finding XPath of element in Chrome/Firefox DOM Inspector

    You can also copy the full XPath of an element via the DOM inspector. Just right click on the element and choose Copy XPath.