0
点赞
收藏
分享

微信扫一扫

selenium系列:三(配置)

googlefrank 2023-10-12 阅读 15

ChromeOptions

ChromeOptions options = new ChromeOptions();

setPageLoadStrategy 等待策略

options.setPageLoadStrategy(PageLoadStrategy.NORMAL);

PageLoadStrategy.NORMAL

正常情况下,selenium 会等待整个界面加载完成(指对html和子资源的下载与解析,入JS文件,图片等,不包含ajax)

PageLoadStrategy.EAGER

要等待整个dom树加载完成,即DOMContentLoaded 这个事件完成,仅对html的内容进行下载解析

PageLoadStrategy.NONE

当html下载完成之后,不等待解析完成,selenium 会直接返回

setExperimentalOption 设置实验选项

// 取消 chrome 正受到自动测试软件的控制的信息栏
options.setExperimentalOption("excludeSwitches", new String[]{"enable-automation"});
// 禁止图片加载
options.setExperimentalOption("prefs", Collections.singletonMap("profile.managed_default_content_settings.images", 2));

**注意:**这里的value 必须是可以转换为json的数据

这里还未找到对应的文档

addArguments 添加启动参数

模拟移动设备

// 通过设置user-agent,用来模拟移动设备
// 比如模拟 android QQ浏览器
options.addArguments("user-agent='MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'");

// 模拟iPhone 6
options.addArguments("user-agent='Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'");

其他配置

// 谷歌无窗口模式
options.addArguments("--headless");

addExtensions(), addEncodedExtensions() 添加扩展应用

后续使用到哪些参数,在这里在添加

ChromeDriver

ChromeDriver chromeDriver = new ChromeDriver();

chromeDriver.get("http://www.baidu.com");

chromeDriver.manage().window().maximize();
chromeDriver.manage().window().fullscreen();

// 获取当前地址
chromeDriver.getCurrentUrl();
// 获取当前title
chromeDriver.getTitle();
// 获取源码
chromeDriver.getPageSource();
// 获取网页内容
chromeDriver.findElement(By.id("password"));

WebDriver.Window window = chromeDriver.manage().window();
int x = window.getPosition().getX();
int y = window.getPosition().getY();
int height = window.getSize().getHeight();
int width = window.getSize().getWidth();

System.out.println("x = " + x + ", y = " + y + ", height = " + height + ", width = " + width);

举报

相关推荐

0 条评论