java Selenium Chrome ChromeDriver 访问指定网页并截屏
所属分类 java
浏览量 47
org.seleniumhq.selenium:selenium-java:3.141.0
ChromeDriver 是一个用于自动化控制 Google Chrome 浏览器的工具,
它实现了 WebDriver 协议,允许开发者通过编程方式模拟用户在浏览器中的操作,如点击、输入文本、导航等。
ChromeDriver 需要与特定版本的 Chrome 浏览器相匹配,以确保能够正常通信和控制浏览器
Chrome 和 ChromeDriver 版本要匹配
查看 chrome版本
版本 131.0.6778.70(正式版本) (arm64)
下载对应版本的 ChromeDriver
chromedriver 各版本下载
https://www.cnblogs.com/aiyablog/articles/17948703
chromedriver 版本下载 131版本
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.io.File;
public class WebScreenShot3 {
public static void main(String[] args) throws Exception {
// 设置 ChromeDriver 的路径
System.setProperty("webdriver.chrome.driver", "/Users/dugang/soft/chromedriver-mac-arm64-131/chromedriver");
// 创建 ChromeOptions 对象
ChromeOptions options = new ChromeOptions();
// 启用 JavaScript(默认情况下是启用的,但明确设置)
options.addArguments("--enable-javascript");
// 其他可选的 Chrome 选项
options.addArguments("--headless"); // 无头模式,不显示浏览器窗口
options.addArguments("--disable-gpu"); // 禁用 GPU 加速
options.addArguments("--window-size=1920,1080"); // 设置窗口大小
long start = System.currentTimeMillis();
// 初始化 WebDriver
ChromeDriver driver = new ChromeDriver(options);
long time = System.currentTimeMillis() - start;
System.out.println("ChromeDriver create time:"+ time);
String url = "http://codefun007.xyz/";
// bi仪表板 , 访问这个地址 ,会做自动登录 ,比较耗时 ,后续sleep时间不够 截图是白屏
url = "http://bi.xxx.test/xxx/link/r0DzGx8y";
driver.get(url);
// 设置 Cookie
// Cookie cookie = new Cookie("Authorization", "221b8e835d644f93a30a151afb79c196");
// driver.manage().addCookie(cookie);
// driver.navigate().refresh();
// 不sleep 可能会截到 白屏 ,截到白屏 可 延长sleep时间
// Thread.sleep(3000);
// waitForDone(driver);
System.out.println("currentUrl:" + driver.getCurrentUrl());
System.out.println("title:" + driver.getTitle());
// 网页源码
// System.out.println("pageSource:"+driver.getPageSource());
// 截图
File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
String destFile = "/Users/dugang/tmp/web.png";
FileUtils.copyFile(srcFile, new File(destFile));
System.out.println(srcFile.getAbsolutePath());
driver.quit();
}
}
https://gitee.com/dyyx/work2024/blob/master/demo/seleniumdemo/src/main/java/WebScreenShot3.java
上一篇
下一篇
《市场真相》读书笔记
Java通过URL获取页面快照
Linux 下使用 Java PhantomJS 和 Selenium 进行网页截图
springboot Selenium Chrome ChromeDriver 实现网页截屏
Quartz 2.3.2 使用
裸K price action 概述