OLD | NEW |
---|---|
(Empty) | |
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 import logging | |
5 | |
6 class WebDriverTabBackend(object): | |
7 def __init__(self, browser_backend, window_handle): | |
8 self._browser_backend = browser_backend | |
9 self._window_handle = window_handle | |
10 | |
11 def Disconnect(self): | |
12 pass | |
13 | |
14 @property | |
15 def browser(self): | |
16 return self._browser_backend.browser | |
17 | |
18 @property | |
19 def window_handle(self): | |
20 return self._window_handle | |
21 | |
22 @property | |
23 def url(self): | |
24 self._browser_backend.driver.switch_to_window(self._window_handle) | |
25 return self._browser_backend.driver.current_url | |
26 | |
27 def Activate(self): | |
28 raise NotImplementedError() | |
29 | |
30 def Close(self): | |
31 self._browser_backend.driver.switch_to_window(self._window_handle) | |
32 self._browser_backend.driver.close() | |
33 | |
34 def WaitForDocumentReadyStateToBeComplete(self, timeout=None): | |
35 # TODO Double check. | |
36 pass | |
37 | |
38 def WaitForDocumentReadyStateToBeInteractiveOrBetter(self, timeout=None): | |
39 # TODO Double check. | |
40 pass | |
41 | |
42 @property | |
43 def screenshot_supported(self): | |
44 return True | |
45 | |
46 def Screenshot(self, timeout=None): | |
47 # TODO | |
48 raise NotImplementedError() | |
49 | |
50 @property | |
51 def message_output_stream(self): | |
52 raise NotImplementedError() | |
53 | |
54 @message_output_stream.setter | |
55 def message_output_stream(self, stream): | |
56 raise NotImplementedError() | |
57 | |
58 def GetDOMStats(self, timeout=None): | |
59 raise NotImplementedError() | |
60 | |
61 def PerformActionAndWaitForNavigate(self, action_function, _): | |
62 # TODO Double check. | |
63 action_function() | |
64 | |
65 def Navigate(self, url, script_to_evaluate_on_commit=None, timeout=None): | |
66 if script_to_evaluate_on_commit: | |
67 raise NotImplementedError('script_to_evaluate_on_commit is NOT supported') | |
68 self._browser_backend.driver.switch_to_window(self._window_handle) | |
69 if timeout: | |
70 self._browser_backend.driver.set_page_load_timeout(timeout * 1000) | |
71 self._browser_backend.driver.get(url) | |
72 | |
73 def GetCookieByName(self, name, timeout=None): | |
74 # TODO |timeout| is not supported. | |
75 if timeout: | |
76 logging.warning('timeout is not supported') | |
77 self._browser_backend.driver.switch_to_window(self._window_handle) | |
78 cookie = self._browser_backend.driver.get_cookie(name) | |
79 if cookie: | |
80 return cookie['value'] | |
81 return None | |
82 | |
83 def ExecuteJavaScript(self, expr, timeout=None): | |
84 self._browser_backend.driver.switch_to_window(self._window_handle) | |
85 if timeout: | |
86 self._browser_backend.driver.set_script_timeout(timeout * 1000) | |
87 self._browser_backend.driver.execute_script(expr) | |
88 | |
89 def EvaluateJavaScript(self, expr, timeout=None): | |
90 self._browser_backend.driver.switch_to_window(self._window_handle) | |
91 if timeout: | |
92 self._browser_backend.driver.set_page_load_timeout(timeout * 1000) | |
tonyg
2013/07/26 18:21:07
Should this be set_script_timeout instead of set_p
chrisgao (Use stgao instead)
2013/07/30 02:06:49
Whoops..
After double check on the webdriver prot
| |
93 return self._browser_backend.driver.execute_script( | |
94 'return eval(\'%s\')' % expr.replace('\'', '\\\'').replace('\n', '')) | |
tonyg
2013/07/26 18:21:07
Maybe we should replace '\n' with ' '.
chrisgao (Use stgao instead)
2013/07/30 02:06:49
Done.
| |
95 | |
96 @property | |
97 def timeline_model(self): | |
98 raise NotImplementedError() | |
99 | |
100 def StartTimelineRecording(self): | |
101 raise NotImplementedError() | |
102 | |
103 def StopTimelineRecording(self): | |
104 raise NotImplementedError() | |
105 | |
106 def ClearCache(self): | |
107 raise NotImplementedError() | |
OLD | NEW |