当前位置: 首页 > 知识库问答 >
问题:

如何通过https in Ruby下载文件

夹谷成龙
2023-03-14

我有一个上传文件的webapp。您可以使用有效帐户登录该站点,然后下载这些文件。我目前正在使用Ruby、Capybara和SeleniumWebDriver自动化整个框架,但我无法自动化下载文件的过程。

到目前为止,我尝试使用Selenium(这不起作用),还使用了Ruby库openURI

def downloadFile(path)
  open('testing.docx', 'wb') do |file|
    file << open(path).read
  end
  download = open(path)
  IO.copy_stream(download, File.expand_path("resources\\downloads"))
end

其中path是指向该文件的链接的href,但首先我得到以下错误:

openssl::ssl::sslerror:ssl_connect返回=1 errno=0 state=sslv3读取服务器证书b:证书验证失败

为了避免这种情况,我使用了以下代码

OpenSSL::SSL::VERIFY\u PEER=OpenSSL::SSL::VERIFY\u NONE

但最后,我无法下载该文件。

在这一点上,我认为我应该加载一个证书,或者从cookies或其他地方检索登录令牌,但我无法确定它到底在哪里。

有没有办法从需要登录的页面下载文件?

共有2个答案

卓致远
2023-03-14

尝试将uri从“https”更改为“http”,如下所示:

path = path.sub("https","http")
左凯定
2023-03-14

如果使用Selenium,则应通过单击相应的链接和按钮,通过浏览器下载文件。

下面介绍如何设置浏览器下载。

https://watirwebdriver.com/browser-downloads/

 类似资料:
  • 本文向大家介绍如何通过表单下载文件?相关面试题,主要包含被问及如何通过表单下载文件?时的应答技巧和注意事项,需要的朋友参考一下 form 表单的action设置为接口地址,设置method为post/get : 根据需要传递的参数设置多个: 如果请求的接口不需要参数,建议设置一个input,否则可能会引起报错。 submit提交到后台

  • 问题内容: 我正在使用使用build.xml文件的ant。这是命令: Java版本:1.8.0蚂蚁版本:1.7.1 它挂在这里: 我收到连接超时错误: Ant还调用了从maven存储库中获取一些文件的方法,build.xml文件的一部分是这样的: 我将这些行放入build.xml文件中: 仍然与Maven进行蚂蚁连接,以通过http挂起获取一些jar文件。我这样做对吗?谢谢。 问题答案: 您正在混

  • 问题内容: 使用PHP,我试图提供由于授权问题而不在网络可访问目录中的大文件(最大可能为200MB)。当前,我使用一个调用以及一些标头来提供文件,但是似乎PHP在发送之前先将其加载到内存中。我打算在共享托管服务器上进行部署,这将不允许我使用太多内存或添加自己的Apache模块(例如X- Sendfile)。 出于安全原因,我不能让我的文件位于可通过网络访问的目录中。有人知道我可以在共享主机服务器上

  • 本文向大家介绍如何通过PHP脚本下载大文件?,包括了如何通过PHP脚本下载大文件?的使用技巧和注意事项,需要的朋友参考一下 要通过PHP脚本下载大文件,代码如下- 示例 输出结果 这将产生以下输出- 函数“ readfile_chunked”(用户定义)具有两个参数:文件名和返回字节数的默认值“ true”,表示已成功下载大文件。声明了变量“ chunksize”,其中每个块需要读取的字节数。将'

  • 我已经尝试了。所有的失败都表明协议必须是HTTP或HTTPS。 Node有可用的FTP客户端(在npmjs上可用)。但是,根据他们的文档,他们需要创建一个到FTP服务器的连接,更改目录,然后下载它。 有什么简单的解决方法吗?

  • 问题内容: 我在服务器端有一个Struts2操作,用于文件下载。 但是,当我使用jQuery调用操作时: 在Firebug中,我看到数据是通过 Binary流 检索的。我想知道如何打开 文件下载窗口 ,用户可以用它在本地保存文件吗? 问题答案: 这是我现在建议的一些注意事项: 需要相对较新的浏览器 如果预期文件 很大,则 您可能应该执行与原始方法(iframe和cookie)类似的操作,因为以下某