Selenium ChromeDriver 截图标记指定元素的方法

本文介绍了如何使用Selenium的ChromeDriver在无头模式下截图并标记指定元素,由于最新版本不再支持直接操作,因此推荐使用其他无头浏览器替代。通过设置参数启动无头模式,然后截取屏幕并标记元素。测试过程详细说明了相关步骤,并提供了区别于常规截图的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

selenium.png

phantomjs 是无头浏览器的代表,可以截全屏的图,对于标记元素来说是很简单的;不过最新的 Selenium 版本表示不再支持;所以只能使用其他的代理品; 正好 chromeFirefox 等都推出无头模式,这里就使用 ChromeDriver 作为演示
ChromeDriver 通过设置 setHeadless(true) 既可开启无头模式

设置 ChromeDirver 必要的参数

//-------------------------
// 该方法有同事提供 -> 滑稽脸
//-------------------------

private static ChromeOptions initWebOption(String proxy) {
   
    ChromeOptions chromeOptions = new ChromeOptions();
    // 开启无头模式
    chromeOptions.setHeadless(true);

    //基础参数设置
    chromeOptions.addArguments("--silent");
    chromeOptions.addArguments("--no-sandbox");
    chromeOptions.addArguments("--disable-gpu");
    chromeOptions.addArguments("--disable-dev-shm-usage");
    chromeOptions.addArguments("--ignore-certificate-errors");
    chromeOptions.addArguments("--allow-running-insecure-content");

    //优化参数设置
    chromeOptions.addArguments("--incognito");
    chromeOptions.addArguments("--disable-images");
    chromeOptions.addArguments("--start-maximized");
    chromeOptions.addArguments("--disable-plugins");
    chromeOptions.addArguments("--disable-infobars");
    chromeOptions.addArguments("--lang=zh_CN.UTF-8");
    chromeOptions.addArguments("--disable-javascript");
    chromeOptions.addArguments("--window-size=1928,1080");
    //chromeOptions.addArguments("--auto-open-devtools-for-tabs");

    //UserAgent
    String userAgent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.3239.132 Safari/537.36";
    chromeOptions.addArguments("--user-agent=" + userAgent);
    log.info("[初始驱动参数] 正在设置驱动用户代理: {}", userAgent);

    //设置加载策略
    String pageLoadStrategy = "eager";
    chromeOptions.setCapability("pageLoadStrategy", pageLoadStrategy);
    log.info("[初始驱动参数] 正在设置驱动加载策略: {}", pageLoadStrategy);

    //高级参数设置
    Map<String, Object> chromePrefs = new HashMap<>();
    //禁止密码保存
    chromePrefs.put("credentials_enable_service", false);
    chromePrefs.put("profile.password_manager_enabled", false);
    //禁止网页弹窗
    chromePrefs.put("profile.default_content_settings.popups", 0);
    //禁止加载图片
    chromePrefs.put("profile.managed_default_content_settings.images", 2);
    chromeOptions.setExperimentalOption("prefs", chromePrefs);
    //屏蔽控制显示
    chromeOptions.setExperimentalOption("useAutomationExtension", false);
    //突破网站检测
    chromeOptions
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值