Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import ctypes | 5 import ctypes |
| 6 import json | 6 import json |
| 7 | 7 |
| 8 class ChromeDriverException(Exception): | 8 class ChromeDriverException(Exception): |
| 9 pass | 9 pass |
| 10 class NoSuchElement(ChromeDriverException): | 10 class NoSuchElement(ChromeDriverException): |
| 11 pass | 11 pass |
| 12 class UnknownCommand(ChromeDriverException): | 12 class UnknownCommand(ChromeDriverException): |
| 13 pass | 13 pass |
| 14 class StaleElementReference(ChromeDriverException): | |
| 15 pass | |
| 14 class UnknownError(ChromeDriverException): | 16 class UnknownError(ChromeDriverException): |
| 15 pass | 17 pass |
| 16 class XPathLookupError(ChromeDriverException): | 18 class XPathLookupError(ChromeDriverException): |
| 17 pass | 19 pass |
| 18 class InvalidSelector(ChromeDriverException): | 20 class InvalidSelector(ChromeDriverException): |
| 19 pass | 21 pass |
| 20 class SessionNotCreatedException(ChromeDriverException): | 22 class SessionNotCreatedException(ChromeDriverException): |
| 21 pass | 23 pass |
| 22 class NoSuchSession(ChromeDriverException): | 24 class NoSuchSession(ChromeDriverException): |
| 23 pass | 25 pass |
| 24 | 26 |
| 25 def _ExceptionForResponse(response): | 27 def _ExceptionForResponse(response): |
| 26 exception_class_map = { | 28 exception_class_map = { |
| 27 7: NoSuchElement, | 29 7: NoSuchElement, |
| 28 9: UnknownCommand, | 30 9: UnknownCommand, |
| 31 10: StaleElementReference, | |
| 29 13: UnknownError, | 32 13: UnknownError, |
| 30 19: XPathLookupError, | 33 19: XPathLookupError, |
| 31 32: InvalidSelector, | 34 32: InvalidSelector, |
| 32 33: SessionNotCreatedException, | 35 33: SessionNotCreatedException, |
| 33 100: NoSuchSession | 36 100: NoSuchSession |
| 34 } | 37 } |
| 35 status = response['status'] | 38 status = response['status'] |
| 36 msg = response['value']['message'] | 39 msg = response['value']['message'] |
| 37 return exception_class_map.get(status, ChromeDriverException)(msg) | 40 return exception_class_map.get(status, ChromeDriverException)(msg) |
| 38 | 41 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 97 return self._ExecuteSessionCommand('getTitle') | 100 return self._ExecuteSessionCommand('getTitle') |
| 98 | 101 |
| 99 def FindElement(self, strategy, target): | 102 def FindElement(self, strategy, target): |
| 100 return self._ExecuteSessionCommand( | 103 return self._ExecuteSessionCommand( |
| 101 'findElement', {'using': strategy, 'value': target}) | 104 'findElement', {'using': strategy, 'value': target}) |
| 102 | 105 |
| 103 def FindElements(self, strategy, target): | 106 def FindElements(self, strategy, target): |
| 104 return self._ExecuteSessionCommand( | 107 return self._ExecuteSessionCommand( |
| 105 'findElements', {'using': strategy, 'value': target}) | 108 'findElements', {'using': strategy, 'value': target}) |
| 106 | 109 |
| 110 def FindChildElement(self, root_element, strategy, target): | |
|
kkania
2013/01/15 22:24:36
we should create a Element class that has these me
chrisgao (Use stgao instead)
2013/01/16 19:06:24
Done.
| |
| 111 return self._ExecuteSessionCommand( | |
| 112 'findChildElement', | |
| 113 {'using': strategy, 'value': target, 'id' : root_element}) | |
| 114 | |
| 115 def FindChildElements(self, root_element, strategy, target): | |
| 116 return self._ExecuteSessionCommand( | |
| 117 'findChildElements', | |
| 118 {'using': strategy, 'value': target, 'id' : root_element}) | |
| 119 | |
| 107 def SetTimeout(self, type, timeout): | 120 def SetTimeout(self, type, timeout): |
| 108 return self._ExecuteSessionCommand( | 121 return self._ExecuteSessionCommand( |
| 109 'setTimeout', {'type' : type, 'ms': timeout}) | 122 'setTimeout', {'type' : type, 'ms': timeout}) |
| 110 | 123 |
| 111 def Quit(self): | 124 def Quit(self): |
| 112 """Quits the browser and ends the session.""" | 125 """Quits the browser and ends the session.""" |
| 113 self._ExecuteSessionCommand('quit') | 126 self._ExecuteSessionCommand('quit') |
| OLD | NEW |