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

Unified Diff: chrome/test/webdriver/session.cc

Issue 7055004: File upload API in chromedriver (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fixed according to the code review. Created 9 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/webdriver/session.cc
diff --git a/chrome/test/webdriver/session.cc b/chrome/test/webdriver/session.cc
index c9febbb8d0f10d9581099f086105701ac948df81..8c6e40fe73cc273c55f12143e4019bcd26cf6d53 100644
--- a/chrome/test/webdriver/session.cc
+++ b/chrome/test/webdriver/session.cc
@@ -188,6 +188,19 @@ Error* Session::SendKeys(const WebElementId& element, const string16& keys) {
return error;
}
+Error* Session::DragAndDropFilePaths(
+ const gfx::Point& location, const std::vector<std::string>& paths) {
+ Error* error = NULL;
+ RunSessionTask(NewRunnableMethod(
+ automation_.get(),
+ &Automation::DragAndDropFilePaths,
+ current_target_.window_id,
+ location,
+ paths,
+ &error));
+ return error;
+}
+
Error* Session::NavigateToURL(const std::string& url) {
Error* error = NULL;
RunSessionTask(NewRunnableMethod(
@@ -1272,4 +1285,43 @@ Error* Session::GetScreenShot(std::string* png) {
return NULL;
}
+Error* Session::GetAttribute(const WebElementId& element,
kkania 2011/06/28 00:58:38 these should be in the same order as in the .h fil
nodchip 2011/06/28 02:30:49 Done.
+ const std::string& key, Value** value) {
+ std::string script = base::StringPrintf(
+ "return (%s).apply(null, arguments);", atoms::GET_ATTRIBUTE);
+
+ ListValue args;
+ args.Append(element.ToValue());
+ args.Append(Value::CreateStringValue(key));
+
+ Error* error = ExecuteScript(script, &args, value);
+ if (error) {
+ return error;
+ }
+
+ return NULL;
+}
+
+Error* Session::GetClickableLocation(const WebElementId& element,
+ gfx::Point* location) {
+ Error* error = CheckElementPreconditionsForClicking(element);
+ if (error) {
+ return error;
+ }
+
+ error = GetElementLocationInView(element, location);
+ if (error) {
+ return error;
+ }
+
+ gfx::Size size;
+ error = GetElementSize(current_target(), element, &size);
+ if (error) {
+ return error;
+ }
+
+ location->Offset(size.width() / 2, size.height() / 2);
+ return NULL;
+}
+
} // namespace webdriver

Powered by Google App Engine
This is Rietveld 408576698