Below is what HTML has. If I click using below XPATH, it's working fine. But data-qtip value keep changing and also there are other class with same name as above in HTML.
How can I click on whatever the value that appears @data-qtip?
HTML:
<a href="javascript:void(0)">
<span class="item-context-link" data-qtip="3711672330">3711672330</span>
</a>
Code:
driver.find_element_by_xpath("//span[contains(@data-qtip, '3711672330')]").click()
CodePudding user response:
In your DOM if data-qtip is unique attribute then you can use below xPath
xPath:
//span[@data-qtip]
Code:
driver.find_element_by_xpath("//span[@data-qtip]").click()
CodePudding user response:
based on OP response, there are 9 data-qtip and due to lack of HTML, I will proide you solution using xpath indexing.
(//span[@data-qtip])[1]
should represent the first 1 element, [2] should represent the second element.
(//span[@data-qtip])[2]
and so on..
PS : Please check in the dev tools (Google chrome) if we have unique entry in HTML DOM or not.
Steps to check:
Press F12 in Chrome -> go to element section -> do a CTRL F -> then paste the xpath and see, if your desired element is getting highlighted with 1/1 matching node.
You can try to increase the index to have a unique matching node in HTMLDOM.
Code trial 1 :
time.sleep(5)
driver.find_element_by_xpath("(//span[@data-qtip])[1]").click()
