OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """End to end tests for ChromeDriver.""" | 6 """End to end tests for ChromeDriver.""" |
7 | 7 |
8 import ctypes | 8 import ctypes |
9 import optparse | 9 import optparse |
10 import os | 10 import os |
11 import sys | 11 import sys |
12 import unittest | 12 import unittest |
13 | 13 |
14 import chromedriver | 14 import chromedriver |
15 import webserver | 15 import webserver |
| 16 from webelement import WebElement |
16 | 17 |
17 _THIS_DIR = os.path.abspath(os.path.dirname(__file__)) | 18 _THIS_DIR = os.path.abspath(os.path.dirname(__file__)) |
18 sys.path.insert(0, os.path.join(_THIS_DIR, os.pardir, 'pylib')) | 19 sys.path.insert(0, os.path.join(_THIS_DIR, os.pardir, 'pylib')) |
19 | 20 |
20 from common import chrome_paths | 21 from common import chrome_paths |
21 from common import unittest_util | 22 from common import unittest_util |
22 | 23 |
23 | 24 |
24 class ChromeDriverTest(unittest.TestCase): | 25 class ChromeDriverTest(unittest.TestCase): |
25 """End to end tests for ChromeDriver.""" | 26 """End to end tests for ChromeDriver.""" |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 self._driver.SwitchToFrame('name') | 80 self._driver.SwitchToFrame('name') |
80 self.assertTrue(self._driver.ExecuteScript('return window.top != window')) | 81 self.assertTrue(self._driver.ExecuteScript('return window.top != window')) |
81 self._driver.SwitchToMainFrame() | 82 self._driver.SwitchToMainFrame() |
82 self.assertTrue(self._driver.ExecuteScript('return window.top == window')) | 83 self.assertTrue(self._driver.ExecuteScript('return window.top == window')) |
83 self._driver.SwitchToFrameByIndex(0) | 84 self._driver.SwitchToFrameByIndex(0) |
84 self.assertTrue(self._driver.ExecuteScript('return window.top != window')) | 85 self.assertTrue(self._driver.ExecuteScript('return window.top != window')) |
85 | 86 |
86 def testGetTitle(self): | 87 def testGetTitle(self): |
87 script = 'document.title = "title"; return 1;' | 88 script = 'document.title = "title"; return 1;' |
88 self.assertEquals(1, self._driver.ExecuteScript(script)) | 89 self.assertEquals(1, self._driver.ExecuteScript(script)) |
89 self.assertEqual('title', self._driver.GetTitle()) | 90 self.assertEquals('title', self._driver.GetTitle()) |
90 | 91 |
91 def testFindElement(self): | 92 def testFindElement(self): |
92 self._driver.ExecuteScript( | 93 self._driver.ExecuteScript( |
93 'document.body.innerHTML = "<div>a</div><div>b</div>";') | 94 'document.body.innerHTML = "<div>a</div><div>b</div>";') |
94 self.assertEqual(1, len(self._driver.FindElement('tag name', 'div'))) | 95 self.assertTrue( |
| 96 isinstance(self._driver.FindElement('tag name', 'div'), WebElement)) |
95 | 97 |
96 def testFindElements(self): | 98 def testFindElements(self): |
97 self._driver.ExecuteScript( | 99 self._driver.ExecuteScript( |
98 'document.body.innerHTML = "<div>a</div><div>b</div>";') | 100 'document.body.innerHTML = "<div>a</div><div>b</div>";') |
99 self.assertEqual(2, len(self._driver.FindElements('tag name', 'div'))) | 101 result = self._driver.FindElements('tag name', 'div') |
| 102 self.assertTrue(isinstance(result, list)) |
| 103 self.assertEquals(2, len(result)) |
| 104 for item in result: |
| 105 self.assertTrue(isinstance(item, WebElement)) |
| 106 |
| 107 def testFindChildElement(self): |
| 108 self._driver.ExecuteScript( |
| 109 'document.body.innerHTML = "<div><br><br></div><div><a></a></div>";') |
| 110 element = self._driver.FindElement('tag name', 'div') |
| 111 self.assertTrue( |
| 112 isinstance(element.FindElement('tag name', 'br'), WebElement)) |
| 113 |
| 114 def testFindChildElements(self): |
| 115 self._driver.ExecuteScript( |
| 116 'document.body.innerHTML = "<div><br><br></div><div><br></div>";') |
| 117 element = self._driver.FindElement('tag name', 'div') |
| 118 result = element.FindElements('tag name', 'br') |
| 119 self.assertTrue(isinstance(result, list)) |
| 120 self.assertEquals(2, len(result)) |
| 121 for item in result: |
| 122 self.assertTrue(isinstance(item, WebElement)) |
100 | 123 |
101 def testGetCurrentUrl(self): | 124 def testGetCurrentUrl(self): |
102 self.assertEqual('about:blank', self._driver.GetCurrentUrl()) | 125 self.assertEqual('about:blank', self._driver.GetCurrentUrl()) |
103 | 126 |
104 def testGoBackAndGoForward(self): | 127 def testGoBackAndGoForward(self): |
105 self._driver.Load(self.GetHttpUrlForFile('/chromedriver/empty.html')) | 128 self._driver.Load(self.GetHttpUrlForFile('/chromedriver/empty.html')) |
106 self._driver.GoBack() | 129 self._driver.GoBack() |
107 self._driver.GoForward() | 130 self._driver.GoForward() |
108 | 131 |
109 def testRefresh(self): | 132 def testRefresh(self): |
(...skipping 26 matching lines...) Expand all Loading... |
136 else: | 159 else: |
137 _CHROME_BINARY = None | 160 _CHROME_BINARY = None |
138 | 161 |
139 all_tests_suite = unittest.defaultTestLoader.loadTestsFromModule( | 162 all_tests_suite = unittest.defaultTestLoader.loadTestsFromModule( |
140 sys.modules[__name__]) | 163 sys.modules[__name__]) |
141 tests = unittest_util.FilterTestSuite(all_tests_suite, options.filter) | 164 tests = unittest_util.FilterTestSuite(all_tests_suite, options.filter) |
142 ChromeDriverTest.GlobalSetUp(); | 165 ChromeDriverTest.GlobalSetUp(); |
143 result = unittest.TextTestRunner().run(tests) | 166 result = unittest.TextTestRunner().run(tests) |
144 ChromeDriverTest.GlobalTearDown(); | 167 ChromeDriverTest.GlobalTearDown(); |
145 sys.exit(len(result.failures) + len(result.errors)) | 168 sys.exit(len(result.failures) + len(result.errors)) |
OLD | NEW |