Chromium Code Reviews| Index: chrome/test/webdriver/webdriver_remote_tests.py |
| diff --git a/chrome/test/webdriver/webdriver_remote_tests.py b/chrome/test/webdriver/webdriver_remote_tests.py |
| index 43371c7ad021934fc23596f8c96e94bdbe8dd1ff..8668614ba03186cf1ff7f6bdbaacdb24eae64956 100644 |
| --- a/chrome/test/webdriver/webdriver_remote_tests.py |
| +++ b/chrome/test/webdriver/webdriver_remote_tests.py |
| @@ -18,8 +18,10 @@ import time |
| import types |
| import unittest |
| import urllib2 |
| -from selenium.remote.webdriver import WebDriver |
| from selenium.common.exceptions import ErrorInResponseException |
| +from selenium.common.exceptions import NoSuchElementException |
| +from selenium.remote.webdriver import WebDriver |
| +from selenium.remote.webdriver.webelement import WebElement |
| from urlparse import urlparse |
| @@ -42,6 +44,19 @@ if not WEBDRIVER_SERVER_URL: |
| WEBDRIVER_SERVER_URL = 'http://localhost:%d' % WEBDRIVER_PORT |
| class RemoteWebDriverTest(unittest.TestCase): |
| + SEARCH = "http://www.google.com/webhp?hl=en" |
| + NEWS = "http://www.google.com/news?hl=en" |
| + |
| + """Verifies that navigation to a specific page is correct by asserting on the |
| + the reported URL. The function will not work with pages that redirect.""" |
| + def navigate(self, url): |
| + self.driver.get(url) |
| + self.assertURL(url) |
| + |
| + def assertURL(self, url): |
| + u = self.driver.get_current_url() |
| + self.assertEqual(u, url) |
| + |
| """A new instance of chrome driver is started for every test case""" |
| def setUp(self): |
| global WEBDRIVER_SERVER_URL |
| @@ -81,6 +96,38 @@ class RemoteWebDriverTest(unittest.TestCase): |
| search = string.lower(search) |
| self.assertNotEqual(-1, string.find(text, search)) |
| +class TestFindElement(RemoteWebDriverTest): |
|
John Grabowski
2010/11/11 21:43:06
2 more tests:
1. timeout 0, load a page, wait for
|
| + def testFindByName(self): |
| + navigate(SEARCH) |
| + # Find the Google search button. |
| + q = self.driver.find_element_by_name("q") |
| + self.assertTrue(isinstance(q, WebElement)) |
| + # Trying looking for an element not on the page. |
| + self.assertRaises(NoSuchElementException, |
| + self.driver.find_elment_by_name, "q2") |
| + # Try to find the Google search button using the multiple find method. |
| + q = self.driver.find_elements_by_name("q") |
| + self.assertTrue(isinstance(q, list)) |
| + self.assertTrue(len(q), 1) |
| + self.assertTrue(isinstance(q[0], WebElement)) |
| + # Try finding something not on page, with multiple find an empty array |
| + # should return and no exception thrown. |
| + q = self.driver.find_elements_by_name("q2") |
| + assertTrue(q == []) |
| + # Find a hidden element on the page |
| + q = self.driver.find_element_by_name("oq") |
| + self.assertTrue(isinstance(q, WebElement)) |
| + |
| + def testFindElementById(self): |
| + navigate(SEARCH) |
| + # Find the padding for the logo near the search bar. |
| + elem = self.driver.find_element_by_id("logocont") |
| + self.assertTrue(isinstance(elem, WebElement)) |
| + # Look for an ID not there. |
| + self.assertRaises(NoSuchElementException, |
| + self.driver.find_element_by_id, "logocont") |
| + |
| + |
| class TestJavaScriptExecution(RemoteWebDriverTest): |
| """ Test the execute javascript ability of the remote driver""" |
| def testNoModification(self): |
| @@ -120,19 +167,6 @@ class TestJavaScriptExecution(RemoteWebDriverTest): |
| class TestNavigation(RemoteWebDriverTest): |
| - SEARCH = "http://www.google.com/webhp?hl=en" |
| - NEWS = "http://www.google.com/news?hl=en" |
| - |
| - """Verifies that navigation to a specific page is correct by asserting on the |
| - the reported URL. The function will not work with pages that redirect.""" |
| - def navigate(self, url): |
| - self.driver.get(url) |
| - self.assertURL(url) |
| - |
| - def assertURL(self, url): |
| - u = self.driver.get_current_url() |
| - self.assertEqual(u, url) |
| - |
| def testNavigateToURL(self): |
| # No redirects are allowed on the google home page. |
| self.navigate(self.SEARCH) |