Моя система:Проблемы с загрузкой файла с помощью file_field в Watir
для Windows 10 Pro 64-битный
рубин 2.1.9p490 (2016-03-30 редакция 54437) [64-mingw32]
FireFox 47.0.1
Для начала, вот код, который я имею дело с:
<div class="dz-style col-sm-7" is="null">
<div is="null">You can drag and drop your supporting document files here, or click to select files to upload.</div>
<input style="display: none;" multiple="" is="null" type="file"></div>
Вот мой код тестирования Watir: Определить и подтвердить файл является действительным
local_file = '/Users/tom.feodoroff/Desktop/Charlie_Snoopy.jpg'
File.exists? local_file
raise "error" unless File.exists? local_file
Измените стиль отображения, так что я могу взаимодействовать с управлением
element = BROWSER.input(:type => 'file')
puts element.attribute_value('style') #display: none;
script = "return arguments[0].style = 'display: inline'"
BROWSER.execute_script(script, element)
puts element.attribute_value('style') #display: inline;
Используйте предложенный синтаксис, чтобы добавить файл приложения
BROWSER.file_field(:type => 'file').set(local_file)
Это не вызывает ошибок, также не прикрепляет файл, чтобы моя кнопка «Отправить» активировалась. Нужна ли мне другая версия Ruby (Watir), чтобы сделать эту работу, или есть что-то, что мне не хватает?
Попробуйте указать букву диска в 'local_file' (например, C :) – orde
Код, который активирует кнопку« Отправить », может не прослушивать изменения в поле файла. Кнопка, вероятно, активируется в коде, который обрабатывает упавший файл, и в этом случае вам придется искать и вручную запускать это. –
Спасибо @orde, я добавил диск к имени файла: irb (main): 001: 0> local_file = 'C: /Users/tom.feodoroff/Desktop/Charlie_Snoopy.jpg' => "C:/Users /tom.feodoroff/Desktop/Charlie_Snoopy.jpg " irb (main): 002: 0> File.exists? local_file => true , но это не помогло решить мою проблему :( –