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)

```

posted on 2024-12-06 16:12  疯狂的妞妞  阅读(18)  评论(0编辑  收藏  举报

导航