我的系統中的文件:問題上傳使用的是,file_field中的Watir
的Windows 10專業版64位
紅寶石2.1.9p490(2016年3月30日修訂54437)[64-的mingw32]
火狐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
激活Submit按鈕的代碼可能不會偵聽對文件字段的更改。該按鈕可能在處理掉落文件的代碼中激活,在這種情況下,您必須找到並手動觸發該按鈕。 –
謝謝@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 但這並沒有解決我的問題:( –