What is the difference between dot and text() in XPath?

0 votes

I'm confused between using dot and text() in XPath. For example, the following find_element lines returns same element:

driver.get('http://stackoverflow.com/')
driver.find_element_by_xpath('//a[text()="Ask Question"]')

and

driver.get('http://stackoverflow.com/')
driver.find_element_by_xpath('//a[.="Ask Question"]')

Then what exactly is even the difference between the two? Benefits/ Drawbacks with using '.' and 'text()'?

Apr 25, 2018 in Selenium by kappa3010
• 2,020 points
1,547 views

1 answer to this question.

0 votes

Even though there is some difference between '.' and 'text()', in the example you have specified, it cannot be explained. 

Consider the below html code. Here, there is no differnce between using the two.

<html>
  <a>Ask Question</a>
</html>

('//a[.="Ask Question"]') and ('//a[text()="Ask Question"]') will return exactly the same result.

But then consider this html code. There will be a difference in this case.

<html>
  <a>Ask Question<other/>
  </a>
</html>

Since there is a child element <other> following "Ask Question", (//a[text()="Ask Question"]) will still return the <a> element, but (//a[.="Ask Question"]) will not return anything.

That's because the meaning of the two predicates (everything between [ and ]) is different. [text()="Ask Question"] will return true if any text node in that element contain exactly "Ask Question". However, [.="Ask Question"] will return true if the string value of an element is identical to "Ask Question".

answered Apr 25, 2018 by king_kenny
• 3,650 points

Related Questions In Selenium

0 votes
2 answers
0 votes
1 answer

What is the difference between relative and absolute XPath?

Absolute Xpath: It contains the complete path ...READ MORE

answered Dec 19, 2018 in Selenium by Nabarupa
2,468 views
0 votes
1 answer

What is the difference between findElement and findElements in Selenium Webdriver?

Hi Nilaabh, Selenium Webdriver uses findElement and ...READ MORE

answered May 8 in Selenium by Anvi
• 13,960 points
590 views
0 votes
1 answer

Finding WebDriver element with Class Name in java

The better way to handle this element ...READ MORE

answered Apr 10, 2018 in Selenium by nsv999
• 5,110 points
977 views
0 votes
1 answer
0 votes
1 answer

Geo-location microphone camera pop up

To Allow or Block the notification, access using Selenium and you have to ...READ MORE

answered May 11, 2018 in Selenium by Samarpit
• 5,130 points
1,132 views
0 votes
1 answer

How to use such xpath to find web elements

It's much simpler to use: #MyDiv123 > div.super or ...READ MORE

answered Jun 14, 2018 in Selenium by Samarpit
• 5,130 points
875 views
0 votes
1 answer

What is the difference between thoughtworks.selenium and openqa.selenium selenium?

thoughtworks.selenium is the original Selenium (aka Selenium 1, ...READ MORE

answered Apr 13, 2018 in Selenium by king_kenny
• 3,650 points
267 views
0 votes
1 answer

What is difference the between Selenium and Celerity?

If you are talking about speed, use Celerity. If ...READ MORE

answered Apr 20, 2018 in Selenium by king_kenny
• 3,650 points
73 views