我的系统:
Windows 10 Pro 64位
ruby 2.1.9p490(2016-03-30修订版54437)[x64-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)来完成这项工作,或者我是否缺少某些东西?
答案 0 :(得分:1)
我不明白为什么,但是我在点击提交按钮之前添加了sleep(5),现在它可以工作了。我的文件图标现在出现在页面上,提交按钮处于活动状态并成功提交表单。那些让你去'嗯'的事情:) 谢谢你的回复。希望这会帮助其他人解决这个问题吗?