使用ruby / Selenium上传文件

时间:2015-05-20 14:17:32

标签: ruby button selenium upload

我正在编写一个脚本,单击按钮(选择照片),打开文件上传(资源管理器)框。我如何设置我的文件名?

这是我用来点击“选择照片”按钮(红宝石)

的代码
driver.find_element(:id, "fileUploadButton").click

我看过一些帖子说我不需要点击按钮,而是将路径发送到我要上传的文件/图片。那么如何在c:\ temp \ mypicture.jpg上传文件?

这是我完整而简单的代码。

driver.navigate.to "http://blah blah"  #the real site is an internal site
driver.find_element(:id, "claimGiftButtonDesktop").click
sleep 5
driver.find_element(:id, "fileUploadButton").click

单击fileUploadButton后,将显示资源管理器窗口。如果我手动点击打开或双击它,则显示加载模式,图像显示在网站上。

这是一个有效的IDE录音。我只是在将其转化为红宝石时遇到了问题。

open /PromoSite
click id=claimGiftButtonDesktop
click id=fileUploadButton
type  id=fileInputElem     #Value C:\\temp\\file.jpg
click id=viewProductPreviewButton

我还添加了一个屏幕截图。我单击按钮,显示文件上传。这应该是容易的,所以我不能专注于正确的id。 enter image description here

2 个答案:

答案 0 :(得分:1)

由于我没有您的代码,我们假设我们正在测试https://encodable.com/uploaddemo/

@driver.navigate.to "https://encodable.com/uploaddemo/"
element = @driver.find_element(:css, 'input[type=file]')
element.send_keys   "/full/path/to/file.jpg"
@driver.find_element(:css, 'input[type=button]').click

因此,您应该将完整路径发送到输入字段并按“提交”按钮

答案 1 :(得分:0)

我知道这已经晚了一年但是我刚刚开始在Selenium / Ruby中编写一个脚本,我花了一些时间才弄明白所以想发布我的解决方案(它就像2行一样简单!):

*第一行插入文件路径而不点击浏览按钮,关键是使用双反斜杠\\分隔目录

*第二行点击“保存/上传”按钮

driver.find_element(id: "Document_upload").send_keys("C:\\Users\\me\\Desktop\\my_file.txt")
driver.find_element(id: "save").click