selenium工具启动Chrome浏览器时配置选项详解

mb62abf3afb54fb2022-06-18 00:02:10
文章标签chromechrome浏览器加载文章分类虚拟化云计算阅读数1473

前言
1、 Chromeoptions 是Chrome浏览器的参数对象,是配置Chrome启动时属性的类。通过某些参数可以为Chrome浏览器添加启动参数。

2、Chrome浏览器启动时的参数携带过程:启动参数在初始化Chrome浏览器的webdriver对象时传入option,实现按特定参数启动。

3、 Chromeoptions 类是Selenium WebDriver中的一个概念,用于操作Chrome驱动程序的各种属性。

4、 ChromeOptions 是chromedriver支持的浏览器启动选项。

5、源代码位置: .\Lib\site-packages\selenium\webdriver\chrome\options.py

class Options(object):

```python
   def __init__(self):
        # 设置 chrome 二进制文件位置
        self._binary_location = ''
        # 添加启动参数
        self._arguments = []
        # 添加扩展应用
        self._extension_files = []
        self._extensions = []
        # 添加实验性质的设置参数
        self._experimental_options = {}
        # 设置调试器地址
        self._debugger_address = None

6、selenium工具操作浏览器默认是不加载任何用户配置,需要我们在初始化浏览器的webdriver对象时手动去加载或者去设置浏览器的初始化信息。

7、ChromOptions是一个配置Chrom浏览器启动时属性的类,通过该类可以为Chrome浏览器配置如下参数:

设置 chrome 二进制文件位置 (binary_location)
添加启动参数 (add_argument)
添加扩展应用 (add_extension, add_encoded_extension)
添加实验性质的设置参数 (add_experimental_option)
设置调试器地址 (debugger_address)
加载用户所有的Chrome浏览器配置
用Chrome浏览器地址栏输入 chrome://version/ ,查看自己的《个人资料路径》,然后在浏览器启动时,调用该用户配置文件。

selenium工具启动Chrome浏览器时配置选项详解_chrome浏览器

代码如下:selenium工具在初始化Chrome浏览器webdriver对象时已经加载了用户配置

```python
```python
#coding=utf-8

from selenium import webdriver

option = webdriver.ChromeOptions()
option.add_argument('--user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data') # 设置成用户自己的数据目录

driver = webdriver.Chrome(chrome_options=option)

修改浏览器User-Agent用户代理信息(模拟移动终端信息)(已达到伪装浏览器的效果)
代码如下:伪装浏览器为手机端访问某网站

移动设备user-agent表格:​ ​http://www.fynas.com/ua​​

代码实例1:

```python
```python
#coding=utf-8

from selenium import webdriver

option = webdriver.ChromeOptions()
option.add_argument('--user-agent=iphone')
driver = webdriver.Chrome(chrome_options=option)

driver.get('http://www.taobao.com/')

.
代码实例2:

```python
# 通过设置user-agent,用来模拟移动设备

# 比如模拟 android QQ浏览器

```python
options.add_argument('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"')

```python
# 模拟iPhone 6
options.add_argument('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"')

指定selenium工具操作Chrome浏览器时下载文件的路径
代码实例1:

```python
option = webdriver.ChromeOptions()

```python
# 设定下载文件的保存目录为D盘的D:\downloadFile
prefs = {"download.default_directory":"D:\download"}
# 将自定义设置添加到chrome配置对象实例中
```python
option.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(options=option, executable_path=CHROME_DRIVER_PATH)
driver.maximize_window()

代码实例2:

```python
```python
# coding=utf-8
from selenium import webdriver

driver_path = (r'xx/chromedriver.exe')  # 驱动位置
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': '默认下载路径'}  # 设置下载文件存放路径,这里要写绝对路径

options = webdriver.ChromeOptions()

options.add_experimental_option('prefs', prefs)

options.add_argument('headless')    # 浏览器隐式启动

driver = webdriver.Chrome(executable_path=driver_path, options=options)

设置selenium工具操作Chrome浏览器时的默认编码方式

```python
```python
# 设置默认编码为 utf-8,也就是中文

from selenium import webdriver

options = webdriver.ChromeOptions()

options.add_argument('lang=zh_CN.UTF-8')

driver = webdriver.Chrome(chrome_options = options)

设置selenium工具操作Chrome浏览器---禁止图片加载(一般用于爬虫,加快访问速度)(不加载图片的情况下,可以提升爬取速度)

```python

```python
# 禁止图片的加载
from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs", prefs)

```python

```python
# 启动浏览器,并设置好wait
browser = webdriver.Chrome(chrome_options=chrome_options)

设置不弹出自动化提示
代码如下:

```python

```python
chrome_options = webdriver.ChromeOptions()

chrome_options.add_argument('disable-infobars')

driver = webdriver.Chrome(chrome_options = chrome_options)

selenium工具启动Chrome浏览器时配置选项详解_加载_02


设置selenium操作Chrome浏览器后台运行

```python
```python
option = webdriver.ChromeOptions()

option.add_argument('headless')

Chrome浏览器设置开发者模式

options = webdriver.ChromeOptions()

options.add_experimental_option('excludeSwitches', ['enable-automation'])

self.browser = webdriver.Chrome(executable_path=chromedriver_path, options=options)

其他配置
登录后复制 

```python
```python
options.add_argument('--disable-infobars') # 禁止策略化

options.add_argument('--no-sandbox') # 解决DevToolsActivePort文件不存在的报错

options.add_argument('window-size=1920x3000') # 指定浏览器分辨率

options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug

options.add_argument('--incognito') # 隐身模式(无痕模式)

options.add_argument('--disable-javascript') # 禁用javascript

options.add_argument('--start-maximized') # 最大化运行(全屏窗口),不设置,取元素会报错

options.add_argument('--disable-infobars') # 禁用浏览器正在被自动化程序控制的提示

options.add_argument('--hide-scrollbars') # 隐藏滚动条, 应对一些特殊页面

options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度

options.add_argument('--headless') # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败

options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" # 手动指定使用的浏览器位置






你可能感兴趣的:(chrome,selenium,python)