How to find web element by xpath using javascript code in python selenium webdriver?

Viewed 1251

I would like to find web element by xpath executing javascript code in python and then click on it. Is this possible and how to do this?

2 Answers

To find a WebElement by using in you have to use the evaluate() method which evaluates an xpath expression and returns a result.


document.evaluate()

document.evaluate() returns an XPathResult based on an XPath expression and other given parameters.

The syntax is:

var xpathResult = document.evaluate(
  xpathExpression,
  contextNode,
  namespaceResolver,
  resultType,
  result
);

Example

As an example the Search Box within the Google Home Page which can be identified uniquely using the xpath as //*[@name='q'] can also be identified from the Console using document.evaluate() and the xpath expression as follows:

document.evaluate("//*[@name='q']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

Snapshot:

document_evalute_xpath

You can use the following method (check the docs):

find_element_by_xpath

Then, to click on the element you found, simply use:

element.click()
Related