diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index 6ffcd5ad088..cf68b60c90c 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -31,6 +31,7 @@ use net_traits::filemanager_thread::{FileManagerResult, FileManagerThreadMsg}; use net_traits::{CoreResourceMsg, IpcSend}; use script_bindings::codegen::GenericBindings::CharacterDataBinding::CharacterDataMethods; use script_bindings::codegen::GenericBindings::DocumentBinding::DocumentMethods; +use servo_config::pref; use style::attr::AttrValue; use style::selector_parser::PseudoElement; use style::str::{split_commas, str_join}; @@ -2293,6 +2294,21 @@ impl HTMLInputElement { let target = self.upcast::(); if self.Multiple() { + // When using WebDriver command element send keys, + // we are expected to append the files to the existing filelist. + if pref!(dom_testing_html_input_element_select_files_enabled) { + let filelist = self.filelist.get(); + if let Some(filelist) = filelist { + for i in 0..filelist.Length() { + files.push( + filelist + .Item(i) + .expect("We should have iterate within filelist length"), + ); + } + } + } + let opt_test_paths = opt_test_paths.map(|paths| { paths .iter() diff --git a/tests/wpt/meta/webdriver/tests/classic/element_send_keys/file_upload.py.ini b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/file_upload.py.ini index 828ec3d761b..99bfd8703d1 100644 --- a/tests/wpt/meta/webdriver/tests/classic/element_send_keys/file_upload.py.ini +++ b/tests/wpt/meta/webdriver/tests/classic/element_send_keys/file_upload.py.ini @@ -1,10 +1,4 @@ [file_upload.py] - [test_multiple_files_send_twice] - expected: FAIL - - [test_single_file_appends_with_multiple_attribute] - expected: FAIL - [test_strict_hidden] expected: FAIL