1

У меня есть тест огурца, который загружает каталог, введя путь к каталогу в поле файла. Он отлично работает, когда я запускаю тест на моей машине, но я получаю следующее сообщение об ошибке при попытке запустить его против моей селена установки сетки:Могу ли я загрузить каталог на удаленный узел через watir-webdriver?

you may only upload files: "/cucumber_tests/temp/uploads/Cuke1477494492767281" (Selenium::WebDriver::Error::WebDriverError) 
    (eval):1:in 'process_watir_call' 

Полной трассировка:

/.rvm/gems/ruby-2.2.0/gems/page-object-1.1.1/lib/page-object/platforms/watir_webdriver/page_object.rb:1052:in 'instance_eval' 
/.rvm/gems/ruby-2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/remote/bridge.rb:432:in 'send_keys_to_element' 
/.rvm/gems/ruby-2.2.0/gems/selenium-webdriver-3.0.0/lib/selenium/webdriver/common/element.rb:146:in 'send_keys' 
/.rvm/gems/ruby-2.2.0/gems/watir-webdriver-0.9.3/lib/watir-webdriver/elements/element.rb:319:in 'block in send_keys' 
/.rvm/gems/ruby-2.2.0/gems/watir-webdriver-0.9.3/lib/watir-webdriver/elements/element.rb:621:in 'element_call' 
/.rvm/gems/ruby-2.2.0/gems/watir-webdriver-0.9.3/lib/watir-webdriver/elements/element.rb:319:in 'send_keys' 
/.rvm/gems/ruby-2.2.0/gems/watir-webdriver-0.9.3/lib/watir-webdriver/elements/file_field.rb:24:in 'value=' 
/.rvm/gems/ruby-2.2.0/gems/watir-webdriver-0.9.3/lib/watir-webdriver/elements/file_field.rb:13:in 'set' 
(eval):1:in 'process_watir_call' 
/.rvm/gems/ruby-2.2.0/gems/page-object-1.1.1/lib/page-object/platforms/watir_webdriver/page_object.rb:1052:in 'instance_eval' 
/.rvm/gems/ruby-2.2.0/gems/page-object-1.1.1/lib/page-object/platforms/watir_webdriver/page_object.rb:1052:in 'process_watir_call' 
/.rvm/gems/ruby-2.2.0/gems/page-object-1.1.1/lib/page-object/platforms/watir_webdriver/page_object.rb:846:in 'file_field_value_set' 
/.rvm/gems/ruby-2.2.0/gems/page-object-1.1.1/lib/page-object/accessors.rb:1021:in 'block in file_field' 

Моих код довольно много выглядит следующим образом:

@browser.file_field(id: "assets").send_keys "/cucumber_tests/temp/uploads/Cuke1477494492767281" 

Опять же, я хотел бы подчеркнуть, что это отлично работает на моей машине, но не на удаленном узле. Кроме того, загрузка одного файла подходит для меня как на моей машине, так и на сетке. Мне интересно, удастся ли кому-либо из вас загрузить каталоги на удаленных узлах или узнать, возможно ли это (даже если мне нужно установить больше камней). Заранее спасибо!

ответ

0

Try проходя абсолютный путь к файлу:

File.expand_path("/cucumber_tests/temp/uploads/Cuke1477494492767281") 

Если вы не пытаетесь загрузить что-то из вашего локального компьютера на удаленный компьютер через Watir. Этого ты не можешь сделать.

Нет, Selenium & Watir не предназначены для загрузки каталогов. Вы можете прокручивать файлы, но они не будут находиться в подкаталоге.

Dir["/path/to/files/*"].each do |file| 
    @browser.file_field(id: "assets").set File.expand_path(file) 
    @browser.form.button.click 
end 
+0

Вы имели в виду справочник? Вы можете загрузить _file_ с моего локального компьютера на удаленный компьютер (и я могу сделать это без проблем). Он может загрузить _directory_ с локального компьютера на удаленный компьютер, который я не смог сделать. – Gian

Смежные вопросы