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_ELEMENT_COMMANDS_H_
6 #define CHROME_TEST_CHROMEDRIVER_ELEMENT_COMMANDS_H_
10 #include "base/callback_forward.h"
11 #include "base/memory/scoped_ptr.h"
14 class DictionaryValue;
22 typedef base::Callback<Status(
26 const base::DictionaryValue&,
27 scoped_ptr<base::Value>*)> ElementCommand;
29 // Execute a command on a specific element.
30 Status ExecuteElementCommand(
31 const ElementCommand& command,
34 const base::DictionaryValue& params,
35 scoped_ptr<base::Value>* value);
37 // Search for an element on the page, starting from the given element.
38 Status ExecuteFindChildElement(
42 const std::string& element_id,
43 const base::DictionaryValue& params,
44 scoped_ptr<base::Value>* value);
46 // Search for multiple elements on the page, starting from the given element.
47 Status ExecuteFindChildElements(
51 const std::string& element_id,
52 const base::DictionaryValue& params,
53 scoped_ptr<base::Value>* value);
55 // Move the mouse to the given element.
56 Status ExecuteHoverOverElement(
59 const std::string& element_id,
60 const base::DictionaryValue& params,
61 scoped_ptr<base::Value>* value);
63 // Click on the element.
64 Status ExecuteClickElement(
67 const std::string& element_id,
68 const base::DictionaryValue& params,
69 scoped_ptr<base::Value>* value);
71 // Touch click on the element.
72 Status ExecuteTouchSingleTap(
75 const std::string& element_id,
76 const base::DictionaryValue& params,
77 scoped_ptr<base::Value>* value);
79 // Clear a TEXTAREA or text INPUT element's value.
80 Status ExecuteClearElement(
83 const std::string& element_id,
84 const base::DictionaryValue& params,
85 scoped_ptr<base::Value>* value);
87 // Send a sequence of key strokes to an element.
88 Status ExecuteSendKeysToElement(
91 const std::string& element_id,
92 const base::DictionaryValue& params,
93 scoped_ptr<base::Value>* value);
95 // Submit a form element.
96 Status ExecuteSubmitElement(
99 const std::string& element_id,
100 const base::DictionaryValue& params,
101 scoped_ptr<base::Value>* value);
103 // Returns the text of a given element.
104 Status ExecuteGetElementText(
107 const std::string& element_id,
108 const base::DictionaryValue& params,
109 scoped_ptr<base::Value>* value);
111 // Returns the value of a given element.
112 Status ExecuteGetElementValue(
115 const std::string& element_id,
116 const base::DictionaryValue& params,
117 scoped_ptr<base::Value>* value);
119 // Returns the lower case tag name of a given element.
120 Status ExecuteGetElementTagName(
123 const std::string& element_id,
124 const base::DictionaryValue& params,
125 scoped_ptr<base::Value>* value);
127 Status ExecuteIsElementSelected(
130 const std::string& element_id,
131 const base::DictionaryValue& params,
132 scoped_ptr<base::Value>* value);
134 Status ExecuteIsElementEnabled(
137 const std::string& element_id,
138 const base::DictionaryValue& params,
139 scoped_ptr<base::Value>* value);
141 Status ExecuteIsElementDisplayed(
144 const std::string& element_id,
145 const base::DictionaryValue& params,
146 scoped_ptr<base::Value>* value);
148 // Returns the location of a given element in page coordinates.
149 Status ExecuteGetElementLocation(
152 const std::string& element_id,
153 const base::DictionaryValue& params,
154 scoped_ptr<base::Value>* value);
156 // Returns the location of a given element in client coordinates, after
157 // scrolling it into view.
158 Status ExecuteGetElementLocationOnceScrolledIntoView(
161 const std::string& element_id,
162 const base::DictionaryValue& params,
163 scoped_ptr<base::Value>* value);
165 Status ExecuteGetElementSize(
168 const std::string& element_id,
169 const base::DictionaryValue& params,
170 scoped_ptr<base::Value>* value);
172 Status ExecuteGetElementAttribute(
175 const std::string& element_id,
176 const base::DictionaryValue& params,
177 scoped_ptr<base::Value>* value);
179 // Returns the effective style for a given property of the specified element.
180 Status ExecuteGetElementValueOfCSSProperty(
183 const std::string& element_id,
184 const base::DictionaryValue& params,
185 scoped_ptr<base::Value>* value);
187 // Returns whether the two given elements are equivalent.
188 Status ExecuteElementEquals(
191 const std::string& element_id,
192 const base::DictionaryValue& params,
193 scoped_ptr<base::Value>* value);
195 #endif // CHROME_TEST_CHROMEDRIVER_ELEMENT_COMMANDS_H_