Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ChromeDriver下载文件_Java_Google Chrome_Selenium_Download - Fatal编程技术网

Java 使用ChromeDriver下载文件

Java 使用ChromeDriver下载文件,java,google-chrome,selenium,download,Java,Google Chrome,Selenium,Download,我有一个项目,我需要下载在ChromeDriver音频文件。这里的行为与普通Chrome不同,如果我访问URL,它会自动开始下载文件。如果我在ChromeDriver中手动执行相同的操作,它将不会下载该文件 我尝试了不同配置的chrome选项/首选项。我还发现了一些与旧版本的chrome一起使用的选项,这些选项不再有效 这是我找到的其中一个更好的资源,但它仍然不起作用,即使他们更新了博客文章 当我试图使用他的解决方案时,我的chromedriver以一种非chrome风格的方式突然崩溃。它就这

我有一个项目,我需要下载在ChromeDriver音频文件。这里的行为与普通Chrome不同,如果我访问URL,它会自动开始下载文件。如果我在ChromeDriver中手动执行相同的操作,它将不会下载该文件

我尝试了不同配置的chrome选项/首选项。我还发现了一些与旧版本的chrome一起使用的选项,这些选项不再有效

这是我找到的其中一个更好的资源,但它仍然不起作用,即使他们更新了博客文章

当我试图使用他的解决方案时,我的chromedriver以一种非chrome风格的方式突然崩溃。它就这样消失了。不是你通常期望的“出错”页面。我最终发现Java无法找到我的会话,因为它不再存在

有没有人通过Chrome中的Selenium webdriver成功下载文件?如果我需要使用其他浏览器,我可以


我目前正在使用铬金丝雀

我也有同样的问题。一个可行的解决方案是使用另一个库,它可以在浏览器之外操作。我在讨论这个问题时发现:

它包含了这篇博文,它给了你一些建议。

  • 窗口自动化
  • 第一种方法闻起来像是“蛮力”:当你在网上搜索问题的解决方案时,你很容易得到建议,用一些像AutoIt这样的窗口自动化软件来控制本机窗口。这意味着您必须准备AutoIt,以便它等待任何浏览器下载对话框,即Selenium放弃的时间点,控制窗口、保存文件并关闭窗口。之后,硒可以像往常一样继续使用

    这可能最终会起作用,但我发现这在技术上太过分了。事实证明,这个问题有一个更简单的解决方案

  • 更改浏览器的默认行为
  • 第二种可能是更改浏览器的默认行为。例如,当单击PDF时,浏览器不应打开对话框询问用户如何处理该文件,而应将其保存在预定义的目录中,不带注释和问题。为此,必须手动启动文件下载,将其保存到磁盘,并从现在起将其标记为这些文件类型的默认行为

    嗯,那可能行得通。“仅”必须确保所有开发人员、hudson实例等共享相同的浏览器配置文件。根据不同文件类型的数量,这可能是一些手工工作

  • 直接下载
  • 退一步说,为什么我们首先要下载带有Selenium的文件?不使用Selenium而使用wget下载文件不是更酷吗?你可以一边走一边解决第二个问题。这似乎是个好主意,因为wget不仅适用于Linux,也适用于Windows

    问题解决了吗?不完全是:那些不能自由访问的文件呢?什么,当我第一次需要使用Selenium创建一些状态以访问生成的文件时?该解决方案似乎适用于公共文件,但并不适用于所有情况


    那么您希望通过Chrome中的Selenium webdriver自动下载文件?你能分享一个例子网站和你的研究吗?我正在尝试下载音频文件和执行语音识别。后半部分正在工作。我遇到的问题是在访问页面时下载文件。当我回家时,我可以提供一个链接,通过正常的I/O下载一个文件不是更好吗?我不确定音频中会出现哪些cookie和因素。我知道,如果我只是获取URL并在新浏览器中尝试,它将不会加载任何内容。如果有必要的话,我可以在postman中做一些实验,找出我的请求中需要的内容。为了手动通过浏览器进行操作,我需要检查元素,并从代码中获取音频文件的URL位置。我可以选择在浏览器中播放音频并录制,但这似乎是我心目中的过激解决方案