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

Side by Side Diff: tools/telemetry/telemetry/core/webdriver/webdriver_tab_backend.py

Issue 20672002: [telemetry] Add a webdriver backend with support for IE. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 4 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 unified diff | Download patch
OLDNEW
(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()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698