使用ruby / Selenium上传文件
我正在写一个脚本,我点击一个按钮(选择照片),打开文件上传(资源管理器)框。 我如何设置我的文件名?
这是我用来点击选择照片按钮(ruby)的代码
driver.find_element(:id, "fileUploadButton").click
我看过一些post说我不需要点击按钮,而是将路径发送到我要上传的文件/图像。 那么如何在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录音。 我只是在将此转换为ruby时遇到问题。
open /PromoSite click id=claimGiftButtonDesktop click id=fileUploadButton type id=fileInputElem #Value C:\\temp\\file.jpg click id=viewProductPreviewButton
我还添加了一个屏幕截图。 我单击按钮,显示文件上传。 这应该是容易的,所以我不能专注于正确的id。
由于我没有您的代码,假设我们正在测试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
因此,您应该将完整路径发送到输入字段并按“提交”按钮
我知道这已经晚了一年但我刚刚开始在Selenium / Ruby中编写一个脚本,我花了一些时间来弄清楚它想要发布我的解决方案(它就像2行一样简单!):
*第一行插入文件路径而不单击浏览按钮,键是使用双反斜杠分隔目录\\
*第二行单击“保存/上传”按钮
driver.find_element(id: "Document_upload").send_keys("C:\\Users\\me\\Desktop\\my_file.txt") driver.find_element(id: "save").click