Commit 737a81a1 authored by Tatiana Buldina's avatar Tatiana Buldina Committed by Commit Bot

[ChromeDriver] Add support for strictFileInteractability to SendKeysToElement command

Bug: chromedriver:2654
Change-Id: I530297d787c09c3be941c7b69dcd3267d1f71aca
Reviewed-on: https://chromium-review.googlesource.com/c/1356594Reviewed-by: default avatarJohn Chen <johnchen@chromium.org>
Commit-Queue: Tatiana Buldina <buldina@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613153}
parent e27a07a0
...@@ -33,11 +33,10 @@ const int kFlickTouchEventsPerSecond = 30; ...@@ -33,11 +33,10 @@ const int kFlickTouchEventsPerSecond = 30;
namespace { namespace {
Status SendKeysToElement( Status FocusToElement(
Session* session, Session* session,
WebView* web_view, WebView* web_view,
const std::string& element_id, const std::string& element_id) {
const base::ListValue* key_list) {
bool is_displayed = false; bool is_displayed = false;
bool is_focused = false; bool is_focused = false;
base::TimeTicks start_time = base::TimeTicks::Now(); base::TimeTicks start_time = base::TimeTicks::Now();
...@@ -75,7 +74,17 @@ Status SendKeysToElement( ...@@ -75,7 +74,17 @@ Status SendKeysToElement(
if (status.IsError()) if (status.IsError())
return status; return status;
} }
return Status(kOk);
}
Status SendKeysToElement(
Session* session,
WebView* web_view,
const std::string& element_id,
const base::ListValue* key_list) {
Status status = FocusToElement(session, web_view, element_id);
if (status.IsError())
return status;
return SendKeysOnWindow(web_view, key_list, true, &session->sticky_modifiers); return SendKeysOnWindow(web_view, key_list, true, &session->sticky_modifiers);
} }
...@@ -342,6 +351,11 @@ Status ExecuteSendKeysToElement(Session* session, ...@@ -342,6 +351,11 @@ Status ExecuteSendKeysToElement(Session* session,
if (status.IsError()) if (status.IsError())
return status; return status;
if (is_input && is_file) { if (is_input && is_file) {
if (session->strict_file_interactability) {
status = FocusToElement(session, web_view,element_id);
if (status.IsError())
return status;
}
// Compress array into a single string. // Compress array into a single string.
base::FilePath::StringType paths_string; base::FilePath::StringType paths_string;
for (size_t i = 0; i < key_list->GetSize(); ++i) { for (size_t i = 0; i < key_list->GetSize(); ++i) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment