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.
5 #ifndef CHROME_TEST_CHROMEDRIVER_WINDOW_COMMANDS_H_
6 #define CHROME_TEST_CHROMEDRIVER_WINDOW_COMMANDS_H_
10 #include "base/callback_forward.h"
11 #include "base/memory/scoped_ptr.h"
14 class DictionaryValue
;
22 typedef base::Callback
<Status(
25 const base::DictionaryValue
&,
26 scoped_ptr
<base::Value
>*)> WindowCommand
;
28 // Execute a Window Command on the target window.
29 Status
ExecuteWindowCommand(
30 const WindowCommand
& command
,
32 const base::DictionaryValue
& params
,
33 scoped_ptr
<base::Value
>* value
);
39 const base::DictionaryValue
& params
,
40 scoped_ptr
<base::Value
>* value
);
42 // Evaluates a given synchronous script with arguments.
43 Status
ExecuteExecuteScript(
46 const base::DictionaryValue
& params
,
47 scoped_ptr
<base::Value
>* value
);
49 // Evaluates a given asynchronous script with arguments.
50 Status
ExecuteExecuteAsyncScript(
53 const base::DictionaryValue
& params
,
54 scoped_ptr
<base::Value
>* value
);
56 // Changes the targeted frame for the given session.
57 Status
ExecuteSwitchToFrame(
60 const base::DictionaryValue
& params
,
61 scoped_ptr
<base::Value
>* value
);
63 // Change focus to the parent frame.
64 Status
ExecuteSwitchToParentFrame(
67 const base::DictionaryValue
& params
,
68 scoped_ptr
<base::Value
>* value
);
70 // Get the current page title.
71 Status
ExecuteGetTitle(
74 const base::DictionaryValue
& params
,
75 scoped_ptr
<base::Value
>* value
);
77 // Get the current page source.
78 Status
ExecuteGetPageSource(
81 const base::DictionaryValue
& params
,
82 scoped_ptr
<base::Value
>* value
);
84 // Search for an element on the page, starting from the document root.
85 Status
ExecuteFindElement(
89 const base::DictionaryValue
& params
,
90 scoped_ptr
<base::Value
>* value
);
92 // Search for multiple elements on the page, starting from the document root.
93 Status
ExecuteFindElements(
97 const base::DictionaryValue
& params
,
98 scoped_ptr
<base::Value
>* value
);
100 // Get the current page url.
101 Status
ExecuteGetCurrentUrl(
104 const base::DictionaryValue
& params
,
105 scoped_ptr
<base::Value
>* value
);
107 // Navigate backward in the browser history.
108 Status
ExecuteGoBack(
111 const base::DictionaryValue
& params
,
112 scoped_ptr
<base::Value
>* value
);
114 // Navigate forward in the browser history.
115 Status
ExecuteGoForward(
118 const base::DictionaryValue
& params
,
119 scoped_ptr
<base::Value
>* value
);
121 // Refresh the current page.
122 Status
ExecuteRefresh(
125 const base::DictionaryValue
& params
,
126 scoped_ptr
<base::Value
>* value
);
128 // Move the mouse by an offset of the element if specified .
129 Status
ExecuteMouseMoveTo(
132 const base::DictionaryValue
& params
,
133 scoped_ptr
<base::Value
>* value
);
135 // Click a mouse button at the coordinates set by the last moveto.
136 Status
ExecuteMouseClick(
139 const base::DictionaryValue
& params
,
140 scoped_ptr
<base::Value
>* value
);
142 // Click and hold a mouse button at the coordinates set by the last moveto.
143 Status
ExecuteMouseButtonDown(
146 const base::DictionaryValue
& params
,
147 scoped_ptr
<base::Value
>* value
);
149 // Releases the mouse button previously held (where the mouse is currently at).
150 Status
ExecuteMouseButtonUp(
153 const base::DictionaryValue
& params
,
154 scoped_ptr
<base::Value
>* value
);
156 // Double-clicks at the current mouse coordinates (set by last moveto).
157 Status
ExecuteMouseDoubleClick(
160 const base::DictionaryValue
& params
,
161 scoped_ptr
<base::Value
>* value
);
163 // Touch press at a given coordinate.
164 Status
ExecuteTouchDown(
167 const base::DictionaryValue
& params
,
168 scoped_ptr
<base::Value
>* value
);
170 // Touch release at a given coordinate.
171 Status
ExecuteTouchUp(
174 const base::DictionaryValue
& params
,
175 scoped_ptr
<base::Value
>* value
);
177 // Touch move at a given coordinate.
178 Status
ExecuteTouchMove(
181 const base::DictionaryValue
& params
,
182 scoped_ptr
<base::Value
>* value
);
184 // Do a swipe (scroll) gesture beginning at the element.
185 Status
ExecuteTouchScroll(
188 const base::DictionaryValue
& params
,
189 scoped_ptr
<base::Value
>* value
);
191 Status
ExecuteTouchPinch(
194 const base::DictionaryValue
& params
,
195 scoped_ptr
<base::Value
>* value
);
197 Status
ExecuteGetActiveElement(
200 const base::DictionaryValue
& params
,
201 scoped_ptr
<base::Value
>* value
);
203 // Send a sequence of key strokes to the active element.
204 Status
ExecuteSendKeysToActiveElement(
207 const base::DictionaryValue
& params
,
208 scoped_ptr
<base::Value
>* value
);
210 // Gets the status of the application cache (window.applicationCache.status).
211 Status
ExecuteGetAppCacheStatus(
214 const base::DictionaryValue
& params
,
215 scoped_ptr
<base::Value
>* value
);
217 Status
ExecuteIsBrowserOnline(
220 const base::DictionaryValue
& params
,
221 scoped_ptr
<base::Value
>* value
);
223 Status
ExecuteGetStorageItem(
227 const base::DictionaryValue
& params
,
228 scoped_ptr
<base::Value
>* value
);
230 Status
ExecuteGetStorageKeys(
234 const base::DictionaryValue
& params
,
235 scoped_ptr
<base::Value
>* value
);
237 Status
ExecuteSetStorageItem(
241 const base::DictionaryValue
& params
,
242 scoped_ptr
<base::Value
>* value
);
244 Status
ExecuteRemoveStorageItem(
248 const base::DictionaryValue
& params
,
249 scoped_ptr
<base::Value
>* value
);
251 Status
ExecuteClearStorage(
255 const base::DictionaryValue
& params
,
256 scoped_ptr
<base::Value
>* value
);
258 Status
ExecuteGetStorageSize(
262 const base::DictionaryValue
& params
,
263 scoped_ptr
<base::Value
>* value
);
265 Status
ExecuteScreenshot(
268 const base::DictionaryValue
& params
,
269 scoped_ptr
<base::Value
>* value
);
271 // Retrieve all cookies visible to the current page.
272 Status
ExecuteGetCookies(
275 const base::DictionaryValue
& params
,
276 scoped_ptr
<base::Value
>* value
);
278 // Set a cookie. If the cookie path is not specified, it should be set to "/".
279 // If the domain is omitted, it should default to the current page's domain.
280 Status
ExecuteAddCookie(
283 const base::DictionaryValue
& params
,
284 scoped_ptr
<base::Value
>* value
);
286 // Delete the cookie with the given name if it exists in the current page.
287 Status
ExecuteDeleteCookie(
290 const base::DictionaryValue
& params
,
291 scoped_ptr
<base::Value
>* value
);
293 // Delete all cookies visible to the current page.
294 Status
ExecuteDeleteAllCookies(
297 const base::DictionaryValue
& params
,
298 scoped_ptr
<base::Value
>* value
);
300 Status
ExecuteSetLocation(
303 const base::DictionaryValue
& params
,
304 scoped_ptr
<base::Value
>* value
);
306 Status
ExecuteSetNetworkConditions(
309 const base::DictionaryValue
& params
,
310 scoped_ptr
<base::Value
>* value
);
312 Status
ExecuteDeleteNetworkConditions(
315 const base::DictionaryValue
& params
,
316 scoped_ptr
<base::Value
>* value
);
318 Status
ExecuteTakeHeapSnapshot(
321 const base::DictionaryValue
& params
,
322 scoped_ptr
<base::Value
>* value
);
324 #endif // CHROME_TEST_CHROMEDRIVER_WINDOW_COMMANDS_H_