我正在编写一个脚本,单击按钮(选择照片),打开文件上传(资源管理器)框。我如何设置我的文件名?
这是我用来点击“选择照片”按钮(红宝石)
的代码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。
答案 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