Selenium自动化 - headless无头浏览器配置 + Capability配置

文章目录

✨✨✨学习的道路很枯燥,希望我们能并肩走下来!

编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。



本文开始

1.headless 无头浏览器使用

Options概述

是一个配置浏览器启动的选项类,用于自定义和配置Driver会话

  • 常见使用场景:
    1.设置无头模式:不会显示调用浏览器,避免人为干扰的问题。
    2.设置调试模式:调试自动化测试代码(浏览器复用)

添加启动配置(arguments)参数

无头模式: --headless

窗体最大化 start-maximized

指定浏览器分辨率 window-size=1920x3000

java 复制代码
@Test
void option(){
    ChromeOptions chromeOptions = new ChromeOptions();
    // 无头模式
    chromeOptions.addArguments("--headless");
    // 窗体最大化
    chromeOptions.addArguments("start-maximized");
	//允许所有来源连接(高版本不配置会报403)
    options.addArguments("--remote-allow-origins=*");
	//初始化配置
    WebDriver driver = new ChromeDriver(chromeOptions);
    // 打开页面
    ......
}

2. capability 配置参数解析

capability概述

官网:https://www.selenium.dev/zh-cn/documentation/webdriver/

1.Capabilities是WebDriver支持的标准命令之外的扩展命令(配置信息)

2.配置web驱动的属性,如浏览器名称、浏览器平台等。

3.结合Selenium Grid完成分布式、兼容性等测试

capability 使用(java)

移动端capability

capability指定设备、App、平台、驱动

java 复制代码
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("platformName", "Android");
caps.setCapability("deviceName", "Pixel_5");
caps.setCapability("app", "/path/to/app.apk");
caps.setCapability("automationName", "UiAutomator2");

AppiumDriver driver = new AndroidDriver(new URL("http://localhost:4723"), caps);

web自动化使用capability

capability设置浏览器启动参数

java 复制代码
@Test
void ceshiren(){
    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.setCapability("platformName", "mac");
    chromeOptions.setCapability("browserName", "chrome");
    //设置capability
    WebDriver driver = new ChromeDriver(chromeOptions);
}

远程 Web 自动化(Selenium Grid / 云平台)使用capability

capability设置期望的浏览器、平台、版本

java 复制代码
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("browserName", "chrome");
caps.setCapability("platformName", "MAC");   // 注意大写
caps.setCapability("browserVersion", "120");

// 合并 Chrome 专属选项
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
caps.merge(options); // 将 ChromeOptions 合并进 capabilities

WebDriver driver = new RemoteWebDriver(
    new URL("http://selenium-hub:4444/wd/hub"), 
    caps
);

总结

✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

相关推荐
Mininglamp_27184 小时前
接口调用 vs 屏幕理解:两种 GUI 自动化架构的技术取舍
运维·架构·自动化
天空属于哈夫克37 小时前
企业微信API二次开发 赋能私域运营自动化
运维·自动化·企业微信
zimoyin7 小时前
在 C# 里嵌入 JavaScript:用 Jint 做可热更新的自动化脚本(从入门到踩坑)
javascript·c#·自动化
天远API8 小时前
零信任架构实战:基于天远运营商二要素V即时版构建自动化分时租赁出行会员身份一致性审核网关
运维·人工智能·架构·自动化
SHENGWEI胜为8 小时前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程
重生之高冷汉堡包11 小时前
ChatGPT 如何打造自动化账号:从零搭建到高效运营
运维·chatgpt·自动化
软件派12 小时前
Beam.Win 自动化办公与业务流程提效指南
运维·自动化
星禾元亨12 小时前
用结构化数据与干净实体信号,让技术内容被 AI 搜索引擎稳定引用
数据库·人工智能·自动化·创业创新
xie8810180213 小时前
长表格跨页重复表头:排版上的做法
测试工具
天空属于哈夫克314 小时前
企业微信 RPA 自动化开发实践:打通客户管理与业务任务处理流程
机器人·自动化·企业微信·rpa