使用Watir中的file_field上传文件时出现问题

时间:2016-07-26 16:05:59

标签: ruby watir watir-webdriver

我的系统:

  

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)来完成这项工作,或者我是否缺少某些东西?

1 个答案:

答案 0 :(得分:1)

我不明白为什么,但是我在点击提交按钮之前添加了sleep(5),现在它可以工作了。我的文件图标现在出现在页面上,提交按钮处于活动状态并成功提交表单。那些让你去'嗯'的事情:) 谢谢你的回复。希望这会帮助其他人解决这个问题吗?