| 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):
|
| + 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)
|
|
|