当前位置: 首页 > ops >正文

Java 自动下载 Chromium

Java 自动下载 Chromium

引入 ChromiumDownloader 库,该库可以下载与加载 Chromium 。ChromiumDownloader 是 selenium-java 的封装

<dependency><groupId>io.github.zimoyin</groupId><artifactId>ChromiumDownloader</artifactId><version>1.2.25</version>
</dependency>

1. 国内下载 Chromium (直连)

public static void main(String[] args) {// 获取下载器(下载器构造方法有众多参数,如有需要可自行添加)HuaweicloudChromiumDownloader downloader = new HuaweicloudChromiumDownloader();// 获取 chromium loaderChromiumLoader loader = new ChromiumLoader(downloader);// 加载 chromium 如果不存在则下载,下载位置默认为 chrome/[版本]/ChromeOptions options = loader.downloadAndLoad();// 创建 chromiumChromeDriver driver = new ChromeDriver(options);driver.get("https://www.baidu.com");
}

2. 国外下载 Chromium

public static void main(String[] args) {// 获取 chromium loader// 使用默认下载器ChromiumLoader loader = new ChromiumLoader();// 加载 chromium 如果不存在则下载,下载位置默认为 chrome/[版本]/ChromeOptions options = loader.downloadAndLoad();// 创建 chromiumChromeDriver driver = new ChromeDriver(options);driver.get("https://www.baidu.com");
}
  • 添加代理
public static void main(String[] args) {// 默认谷歌下载器ChromiumDownloader downloader = new ChromiumDownloader("127.0.0.1", 8070);// 获取 chromium loaderChromiumLoader loader = new ChromiumLoader(downloader);// 加载 chromium 如果不存在则下载,下载位置默认为 chrome/[版本]/ChromeOptions options = loader.downloadAndLoad();// 创建 chromiumChromeDriver driver = new ChromeDriver(options);driver.get("https://www.baidu.com");
}

如果不想使用下载功能可以使用 EmptyDownloader

3. ChromiumEx

ChromiumEx 是对 ChromeDriver 的简略封装,提供了部分监听功能,比如监听标签创建,关闭,浏览器关闭,控制台日志等

public static void main(String[] args) {ChromiumDownloader downloader = new ChromiumDownloader("127.0.0.1", 8070);ChromiumLoader loader = new ChromiumLoader(downloader);ChromeOptions options = loader.downloadAndLoad();ChromeDriver driver = new ChromeDriver(options);// 创建 chromium 扩展// ChromiumEx 可以与 ChromeDriver 共同使用但是使用不当可能会造成意外的情况ChromiumEx chromium = new ChromiumEx(driver);// 阻塞等待 chromium 关闭chromium.blockUntilQuit(it->{// 打开一个网页// window 是对标签页的封装CWindow window = it.get("https://baidu.com");// 获取当前的 CWindow CWindow window1 = it.getWindow();});
}
  • Kotlin 直接使用 ChromeDriver.xxxx 即可,所有的方法以作为 ChromeDriver 的拓展
    ChromeDriver(options).blockUntilQuitSuspend {get(qr_code)window.cookieManager.apply {add("cna",cna)add("ucsession",ucsession)add("isg",isg)}window.cookieManager.cookies.forEach {println("${it.domain} = ${it.name}:${it.value}")}}

4. CWindow

CWindow 是对标签页的封装, 提供了众多封装,可以做到对任意一个 CWindow 进行操作,当对 CWindow 进行操作打的时候,会切换到特定的标签页进行操作

5. ChromeOptionsExKt

ChromeOptionsExKt 是封装了对 ChromeOptions 的一些拓展方法

options.enableHeadless()
// ....
  • 当然Java 也可以使用
ChromeOptionsExKt.enableHeadless(options);
//....
http://www.xdnf.cn/news/5038.html

相关文章:

  • 数学教育软件
  • AI技术发展:就业的颠覆者还是新机遇的缔造者?
  • 古方焕新潮!李良济盒马联名养生水,以创新赋能中式养生新潮流
  • 明远智睿SSD2351开发板:仪器仪表与智慧农业的创新利器
  • 【C/C++】C++中noexcept的妙用与性能提升
  • 安科瑞光伏综自系统在新能源电站中的应用及调度上传方案研究
  • HNOI2004.打鼹鼠
  • 洛谷 P1179【NOIP 2010 普及组】数字统计 —— 逐位计算
  • 等保系列(三):等保测评的那些事
  • [特征工程]机器学习-part2
  • ABB电机保护单元通过profibusDP主站转profinet网关接入到西门子1200plc系统
  • MapStruct用法实战
  • STL-vector
  • 对比学习入门
  • Unity按钮事件冒泡
  • 20.java反序列化-对象的类自定义的readObject()方法
  • 【算法】:滑动窗口
  • C++八股 —— vector底层
  • OpenHarmony launcher开发——删除dock栏
  • MegaCLI Raid管理工具
  • 如何训练deepseek语言大模型
  • 数据结构(1)复杂度
  • QT事件介绍及实现字体放大缩小(滚轮)
  • LIMIT详解
  • 在一个FreeBSD的控制台,当移动鼠标时,就会有字符发生,这是怎么回事:35;62;18m35;60;
  • 【PhysUnits】3.2 SI 量纲 补充幂运算(dimension/mod.rs)
  • 低成本自动化改造的18个技术锚点深度解析
  • STM32-TIM定时中断(6)
  • MOS管的优缺点及应用
  • CMA认证对象?CMA评审依据,CMA认证好处