Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8570)

Unified Diff: chrome/test/webdriver/test/chromedriver_tests.py

Issue 9288051: Implement the webdriver window sizing commands. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ... Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/webdriver/test/chromedriver_tests.py
diff --git a/chrome/test/webdriver/test/chromedriver_tests.py b/chrome/test/webdriver/test/chromedriver_tests.py
index 690e47375c914798c49340ba2d78fcf3f99d1e06..437663545be0e48662fb93468378224d9f25e2b0 100644
--- a/chrome/test/webdriver/test/chromedriver_tests.py
+++ b/chrome/test/webdriver/test/chromedriver_tests.py
@@ -36,6 +36,7 @@ try:
except ImportError:
import json
+from selenium.common.exceptions import NoSuchWindowException
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
@@ -982,6 +983,64 @@ class AlertTest(ChromeDriverTest):
driver.execute_async_script('arguments[0](); window.alert("ok")')
driver.switch_to_alert().accept()
dennis_jeffrey 2012/01/27 16:23:29 insert another blank line here
kkania 2012/01/27 22:48:31 Sorry. I think I keep on forgetting this. Done.
+class WindowTest(ChromeDriverTest):
+ def testSizeAndPosition(self):
+ driver = self.GetNewDriver()
+
+ # TODO(kkania): Update the python bindings and get rid of these.
+ driver.command_executor._commands.update({
+ 'getSize': ('GET', '/session/$sessionId/window/$windowHandle/size'),
+ 'setSize': ('POST', '/session/$sessionId/window/$windowHandle/size'),
+ 'getPos': ('GET', '/session/$sessionId/window/$windowHandle/position'),
+ 'setPos': ('POST', '/session/$sessionId/window/$windowHandle/position')
+ })
+ def getSize(window='current'):
+ return driver.execute('getSize', {'windowHandle': window})['value']
+ def setSize(width, height, window='current'):
+ params = { 'windowHandle': window,
+ 'width': width,
+ 'height': height
+ }
+ return driver.execute('setSize', params)
+ def getPosition(window='current'):
+ return driver.execute('getPos', {'windowHandle': window})['value']
+ def setPosition(x, y, window='current'):
+ params = { 'windowHandle': window,
+ 'x': x,
+ 'y': y
+ }
+ return driver.execute('setPos', params)
+
+ # Test size.
+ size = getSize()
+ setSize(size['width'], size['height'])
+ self.assertEquals(size, getSize())
+ setSize(800, 600)
+ self.assertEquals(800, getSize()['width'])
+ self.assertEquals(600, getSize()['height'])
+ # Test position.
+ pos = getPosition()
+ setPosition(pos['x'], pos['y'])
+ self.assertEquals(pos, getPosition())
+ setPosition(100, 200)
+ self.assertEquals(100, getPosition()['x'])
+ self.assertEquals(200, getPosition()['y'])
+ # Test specifying window handle.
+ driver.execute_script(
+ 'window.open("about:blank", "name", "height=200, width=200")')
+ windows = driver.window_handles
+ self.assertEquals(2, len(windows))
+ setSize(400, 300, windows[1])
+ self.assertEquals(400, getSize(windows[1])['width'])
+ self.assertEquals(300, getSize(windows[1])['height'])
+ self.assertNotEquals(getSize(windows[1]), getSize(windows[0]))
+ # Test specifying invalid handle.
+ invalid_handle = 'f1-120'
+ self.assertRaises(WebDriverException, setSize, 400, 300, invalid_handle)
+ self.assertRaises(NoSuchWindowException, getSize, invalid_handle)
+ self.assertRaises(NoSuchWindowException, setPosition, 1, 1, invalid_handle)
+ self.assertRaises(NoSuchWindowException, getPosition, invalid_handle)
+
dennis_jeffrey 2012/01/27 16:23:29 insert another blank line here
kkania 2012/01/27 22:48:31 Done.
class ExtensionTest(ChromeDriverTest):
INFOBAR_BROWSER_ACTION_EXTENSION = test_paths.TEST_DATA_PATH + \

Powered by Google App Engine
This is Rietveld 408576698