在下面的代码中,我尝试在无头模式下使用selenium从chrome浏览器下载PDF。它对PDF文件很好,但对

.cfm

文件。

public static void main(String args[]) throws InterruptedException, AWTException, IOException, DocumentException {

System.setProperty("webdriver.chrome.driver", "/home/OtherProj/webDrivers/chromedriver_64");

String downloadPath = "/home/Downloads/AAAA/";

File file = new File(downloadPath);

if(!file.exists())

file.mkdirs();

ChromeOptions chromeOptions = new ChromeOptions();

HashMap prefs = new HashMap<>();

prefs.put("plugins.always_open_pdf_externally", true);

chromeOptions.addArguments("--test-type");

chromeOptions.addArguments("--disable-extensions");

chromeOptions.setExperimentalOption("prefs", prefs);

chromeOptions.setHeadless(true);

String pdfUrl = "https://www.dummyurl.com/prod/formPDF.cfm";

ChromeDriverService driverService = ChromeDriverService.createDefaultService();

WebDriver driver = new ChromeDriver(driverService, chromeOptions);

// Saves the file on the given path

PDFDemo.downloadFile(downloadPath, driverService, driver, pdfUrl);

System.out.println("Document Downloaded..");

}

private static void downloadFile(String downloadPath, ChromeDriverService driverService, WebDriver driver, String pdfUrl) throws ClientProtocolException, IOException, InterruptedException {

Map commandParams = new HashMap<>();

commandParams.put("cmd", "Page.setDownloadBehavior");

Map params = new HashMap<>();

params.put("behavior", "allow");

params.put("downloadPath", downloadPath);

commandParams.put("params", params);

HttpClient httpClient = HttpClientBuilder.create().build();

ObjectMapper objectMapper = new ObjectMapper();

String command = objectMapper.writeValueAsString(commandParams);

String u = driverService.getUrl().toString() + "/session/" + ((RemoteWebDriver) driver).getSessionId() + "/chromium/send_command";

HttpPost request = new HttpPost(u);

request.addHeader("content-type", "text/x-cfm");

request.setEntity(new StringEntity(command));

httpClient.execute(request);

// Opens pdf of specific URL

driver.get(pdfUrl);

}

我也提到了下面的答案,但没有起作用。我也没有在控制台中得到任何异常。

Java谷歌无头模式速度_Java selenium无头模式下载CFM文件问题相关推荐

  1. java使用jxl生成excel表格,jsp使用js下载excel文件xls

    java使用jxl生成excel表格,jsp使用js下载excel文件 后端代码 maven jar包 主体代码逻辑 引入的jar包 具体代码段 重点详解 表头和表格内容两种格式 直接将 HttpSe ...

  2. java工厂方法模式记录日志_java工厂方法模式

    一:工厂方法模式 1.概念 工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式. 工厂方法模式的用意 ...

  3. java策略设计模式输出字母_Java 设计模式-策略模式(Strategy Pattern)

    策略模式(Strategy Pattern)属于对象行为模式.其作用是针对一组算法,将每个算法封装到具有共同接口的独立类中,从而使它们可以相互替换. 策略模式的意图是将可以互换的方法封装在各自的对立类 ...

  4. java 设置不可点击_Java Selenium webdriverwait 解决元素不可点击问题

    webdriver有两种等待方式:显式等待和隐式等待 因为现在大部分的web应用程序会使用AJAX技术.AJAX技术简单来说就是异步JavaScript和xml,是一种用户创建快速动态网页的技术,AJ ...

  5. java中介者模式例子_Java中介者模式(Mediator Pattern)

    本篇文章帮大家学习java中介者模式(Mediator Pattern),包含了Java中介者模式(Mediator Pattern)使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以 ...

  6. java等待页面加载_java selenium (十三) 智能等待页面加载完成

    我们经常会碰到用selenium操作页面上某个元素的时候, 需要等待页面加载完成后, 才能操作.  否则页面上的元素不存在,会抛出异常. 或者碰到AJAX异步加载,我们需要等待元素加载完成后, 才能操 ...

  7. java模拟网易邮箱登录_java+selenium 实现网易邮箱登录功能

    今天学习selenium ,折腾了一整天,写个笔记记录一下今天的错误. 我用的是java+webdriver,在eclipse中运行,今天的学习是进行网易邮箱的登录功能.一开始代码运行一直报找不到元素 ...

  8. java商场满减活动_Java使用策略模式解决商场促销商品问题示例

    本文实例讲述了Java使用策略模式解决商场促销商品问题.分享给大家供大家参考,具体如下: 一 模式定义 策略模式:定义一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的 ...

  9. java 策略模式 促销_java设计模式——策略模式

    一. 定义与类型 定义:针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换.策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能.当代码中 ...

最新文章

  1. Window环境下,Qt中文出现乱码解决办法
  2. 7 php程序的调试方法_php程序调试方法总结
  3. 微信小程序 全局变量异步函数_微信小程序【生命周期】
  4. 基于easyui开发Web版Activiti流程定制器详解(六)——Draw2d详解(二)
  5. confirm的意思中文翻译_confirm的中文意思
  6. OpenResty实现LNMP的缓存前移(到达nginx前端层面)
  7. linux之yum源设置代理
  8. CCF-CSP认证备考学习行动路线图
  9. 看jQuery源码的技巧
  10. 基于蓝牙的单片机小车
  11. [APIO2014]序列分割
  12. python模拟登录中国海洋大学教务系统(青果)- 爬取学期所有专业课至excel - 并进行课表排课(一)
  13. 带你实现完整的视频弹幕系统
  14. win7 系统激活工具 亲测可行
  15. 计算机组成x什么意思,cpu后面带x是什么意思
  16. Excel找回打开密码过程
  17. 学到生无可恋之 Redis(下)
  18. 2019北京国际智能-智慧教育产品展
  19. Springboot+MySQL+VUE实现的在线教育网站源码+视频教程(Springboot微服务架构)
  20. android内存卡哪些可以删除,安卓手机内存清理方法有哪些

热门文章

  1. IBM ThinkPad T400 R400 T500 R500 W500 Vista Ultima
  2. 管理心理学 【9095】
  3. Java并发编程汇总
  4. 利用element显示Notification通知,复制提醒,禁用F12或右键菜单提醒
  5. 凤凰端子EN45545-2标准执行R24或者R26
  6. 超级计算机打游戏帧数,B社真的搞了台超级电脑让《毁灭战士:永恒》跑到1000帧...
  7. win10系统64位安装python什么版本_如何在win10中安装Python
  8. 对计算机的硬盘进行高级格式化,磁盘的低级格式化、快速格式化、高级格式化有什么区别?...
  9. 从原理到实践 如何拍出高质量TEM照片
  10. ubuntu主流源地址(官方链接实时更新版)