使用 ruby / Selenium 上传文件

问题描述 投票:0回答:3

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

这是我用来单击“选择照片”按钮 (ruby) 的代码

driver.find_element(:id, "fileUploadButton").click

我看到一些帖子说我不需要单击按钮,而是发送我想要上传的文件/图像的路径。那么我该如何上传文件到 c:emp\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

单击文件上传按钮后,将显示资源管理器窗口。如果我手动单击“打开”或双击它,则会显示加载模式,并且图像会显示在网站上。

这是一个可以运行的 IDE 记录。我只是在将其翻译成 ruby 时遇到问题。

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

我还添加了屏幕截图。我单击按钮,然后显示文件上传。这应该很简单,所以我不能把注意力集中在正确的 id 上。 enter image description here

ruby button selenium upload
3个回答
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

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


0
投票

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

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

\\

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

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

0
投票

我必须使用 ruby-selenium webdriver 上传 .pdf 文件 这是代码但不起作用 -

@driver.find_element(:xpath,"//*[@id='document-upload-form']").send_keys("D:\\invoice.pdf")


xpath is for "upload button" after clicking upload file button ,new window will open where we select file then click "open button" 
but as you say click on save button here is no save button

© www.soinside.com 2019 - 2024. All rights reserved.