selenium - chrome-options
ChromeOptions 是 Selenium 库中的一个类,用于配置 Chrome 浏览器的启动参数和功能。
通过 ChromeOptions,用户可以自定义浏览器的行为,以满足不同的测试或爬虫需求。
主要功能:
- 页面加载策略:可以设置页面加载策略,例如使用eager模式加快页面加载速度,放弃加载CSS样式和静态资源1。
* 窗口管理:可以设置浏览器的窗口大小、位置和是否最大化等1。
* 隐身模式:通过添加启动参数,可以实现浏览器的隐身模式,适用于需要匿名访问的场景1。
* 无头模式:以无界面模式运行浏览器,适用于后台自动化任务1。
* 本地缓存管理:可以控制浏览器是否加载本地缓存数据1。
* 控制台日志排除:可以排除控制台中的多余日志信息,减少自动化测试时的干扰1。
使用方法
在Python中使用ChromeOptions的基本步骤如下:
Copy Code
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--headless') # 无头模式
options.add_argument('--disable-gpu') # 禁用GPU加速
options.add_experimental_option('prefs', {'profile.managed_default_content_settings.images': 2}) # 不加载图片
driver = webdriver.Chrome(options=options)
driver.get('https://example.com')
```
通过以上设置,可以创建一个无头、不加载图片的Chrome浏览器实例,适用于自动化测试或爬虫任务
#### 常用配置
````python
# 页面加载策略eager放弃加载css样式、静态资源等,提升加载速度
options.page_load_strategy = 'eager'
# 浏览器最大化(指定位置参数和最大化不能同时存在)
options.add_argument('start-maximized')
# 指定浏览器位置
options.add_argument('window-position=0,0')
# 设置浏览器分辨率
options.add_argument('window-size=1920,1080')
# 使用headless无界面浏览器模式,偶有 bug
chrome_options.add_argument('--headless')
# 谷歌禁用GPU加速
chrome_options.add_argument('--disable-gpu')
# 读取本地缓存的操作:webdriver启动的时候默认是不会加载本地缓存数据的。
# 调用本地缓存一定要先关闭所有的浏览器,不然会报错。
# 注:AppData的路径只复制到User Data下即可
options.add_argument(r'--user-data-dir=C:\Users\xxx\AppData\Local\Google\Chrome\User Data')
prefs = dict()
# 去掉账号密码弹出框
prefs['credentials_enable_service'] = False
prefs['profile.password_manager_enable'] = False
# 不加载图片
prefs['profile.managed_default_content_settings.images'] = 2
options.add_experimental_option('prefs',prefs)
# 以开发者模式启动调试chrome,可以去掉提示受到自动软件控制
options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 去掉提示以开发者模式调用
options.add_experimental_option('useAutomationExtension', False)
# 去掉控制台多余信息
options.add_experimental_option('excludeSwitches', ['enable-logging'])
# 去掉浏览器提示自动化黄条。
options.add_experimental_option('excludeSwitches', ['enable-automation', 'enable-logging'])
# 隐身模式。(启动隐身模式时无法调用selenium中的switch_to.new_window()函数)
options.add_argument('incognito')
# 去掉控制台多余信息2,可以作为保险的存在。(当发现还有多余信息的时候)
options.add_argument('--log_level=3')
options.add_argument('--ignore-certificate-errors')
driver = webdriver.Chrome(options=options)
```
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!