class MouseTest(unittest.TestCase): """Mouse command tests for the json webdriver protocol""" def setUp(self): self._launcher = ChromeDriverLauncher(root_path=os.path.dirname(__file__)) self._driver = WebDriver(self._launcher.GetURL(), DesiredCapabilities.CHROME) def tearDown(self): self._driver.quit() self._launcher.Kill() def testClickElementThatNeedsContainerScrolling(self): self._driver.get(self._launcher.GetURL() + '/test_page.html') self._driver.find_element_by_name('hidden_scroll').click() self.assertTrue(self._driver.execute_script('return window.success')) def testClickElementThatNeedsIframeScrolling(self): self._driver.get(self._launcher.GetURL() + '/test_page.html') self._driver.switch_to_frame('iframe') self._driver.find_element_by_name('hidden_scroll').click() self.assertTrue(self._driver.execute_script('return window.success')) def testClickElementThatNeedsPageScrolling(self): self._driver.get(self._launcher.GetURL() + '/test_page.html') self._driver.find_element_by_name('far_away').click() self.assertTrue(self._driver.execute_script('return window.success')) def testDoNotScrollUnnecessarilyToClick(self): self._driver.get(self._launcher.GetURL() + '/test_page.html') self._driver.find_element_by_name('near_top').click() self.assertTrue(self._driver.execute_script('return window.success')) script = 'return document.body.scrollTop == 0 && ' \ ' document.body.scrollLeft == 0' self.assertTrue(self._driver.execute_script(script))