Checkout our demo site to practice selenium https://magento.softwaretestingboard.com/

0 like 0 dislike
320 views
by The go-to Tester (218 points)

I am automatating a test using Selenium Webdriver using Python language. My code is -:

import unittest
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
 
class JqueryUiTests(unittest.TestCase):
 
    def setUp(self):
        self.driver = webdriver.Chrome()
    def test_tooltip(self):
        driver = self.driver
        driver.get('https://jqueryui.com/tooltip/')
        frame=driver.find_element_by_tag_name('iframe')
        driver.switch_to_frame(frame)
        tooltip_input=driver.find_element_by_xpath("//input[@id='age']")
        actions=ActionChains(driver)
        actions.move_to_element(tooltip_input)
        actions.perform()
        tooltip_message=driver.find_element_by_xpath("//div[@role='tooltip']")
        message=tooltip_message.text
        self.assertEqual(message,'We ask for your age only for statistical purposes.')
    def tearDown(self):
        self.driver.close()       
if __name__ == "__main__":
    unittest.main()

The error message that i get is

  File "E:\Python Workspace\example.py", line 30, in test_tooltip

    tooltip_message=driver.find_element_by_xpath("//div[@role='tooltip']")
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 253, in find_element_by_xpath
    return self.find_element(by=By.XPATH, value=xpath)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 707, in find_element
    {'using': by, 'value': value})['value']
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 196, in execute
    self.error_handler.check_response(response)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 181, in check_response
    raise exception_class(message, screen, stacktrace)
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@role='tooltip']"}
  (Session info: chrome=55.0.2883.87)
  (Driver info: chromedriver=2.26.436362 (5476ec6bf7ccbada1734a0cdec7d570bb042aa30),platform=Windows NT 6.1.7601 SP1 x86_64)

1 Answer

0 like 0 dislike
by
selected by
 
Best answer
  1. First of all, dont use xpaths. they are slooooooooooooooww
  2. the message is clear so either your xpath is wrong or the tooltip aint displayed yet 
  3. read about Webdriver waits to wait for an element to appear (WebDriverWait)
  4.   self.driver.close() -- what is this ... quit()

you can put some sleep betwen but this is not good programming , using waits

actions.perform()

tooltip_message=driver.find_element_by_xpath("//div[@role='tooltip']")

 

 

 


This site is for software testing professionals, where you can ask all your questions and get answers from 1300+ masters of the profession. Click here to submit yours now!

...