4.0 KiB
Raw Blame History

为使浏览器设置更便利,本库扩展了selenium.webdriver.chrome.optionsOptions对象功能,创建了DriverOptions类,专门用于管理浏览器的启动配置。

!> 注意:
1、DriverOptions仅用于管理启动配置,浏览器启动后再修改无效。
2、若设置了local_portdebugger_address且浏览器未启动,则只有argumentsdriver_pathchrome_path参数生效。
3、若设置了local_portdebugger_address且接管已有浏览器,只有driver_path参数生效。

DriverOptions 类

DriverOptions类继承自Options 类,保留了原来所有功能,原生功能不在这里叙述,只介绍增加的功能。
对象创建时,可从配置文件中读取配置来进行初始化,不从文件读取则创建一个空配置对象。
该类绝大部分方法都支持链式操作。

初始化参数:

  • read_file是否从默认 ini 文件中读取配置信息
  • ini_pathini 文件路径,为None则读取默认 ini 文件

driver_path

此属性返回 chromedriver 文件路径。

chrome_path

此属性返回 Chrome 浏览器启动文件路径,即binary_location
为空时程序会根据注册表或系统路径查找。

set_paths()

该方法用于设置浏览器用到的几种路径信息。

参数:

  • driver_pathchromedriver.exe 路径
  • chrome_pathchrome.exe 路径
  • local_port本地端口号
  • debugger_address调试浏览器地址会覆盖local_port设置127.0.0.1:9222
  • download_path下载文件路径
  • user_data_path用户数据路径
  • cache_path缓存路径

返回:None

save()

此方法用于保存当前配置对象的信息到配置文件。

参数:

  • path配置文件的路径默认保存到当前读取的配置文件传入'default'保存到默认 ini 文件

返回:配置文件绝对路径

save_to_default()

此方法用于保存当前配置对象的信息到默认 ini 文件。

参数:无

返回:配置文件绝对路径

remove_argument()

此方法用于移除一个argument项。

参数:

  • value设置项名称带有值的设置项传入设置名称即可

返回:当前对象

remove_experimental_option()

此方法用于移除一个实验设置传入key值删除。

参数:

  • key实验设置的名称

返回:当前对象

remove_all_extensions()

此方法用于移除所有插件。

参数:无

返回:当前对象

set_argument()

此方法用于设置浏览器配置的argument属性。

参数:

  • arg属性名
  • value属性值有值的属性传入值没有的传入bool类型表示开关

返回:当前对象

set_timeouts()

此方法用于设置三种超时时间selenium 4 以上版本有效。

参数:

  • implicit查找元素超时时间
  • pageLoad页面加载超时时间
  • script脚本运行超时时间

返回:当前对象

set_headless()

该方法用于设置是否已无头模式启动浏览器。

参数:

  • on_offbool类型,表示开或关

返回None

set_no_imgs()

该方法用于设置是否禁止加载图片。

参数:

  • on_offbool类型,表示开或关

返回:None

set_mute()

该方法用于设置是否静音。

参数:

  • on_offbool类型,表示开或关

返回None

set_proxy()

该方法用于设置代理。

参数:

  • proxy: 代理网址和端口,如 127.0.0.1:1080

返回:None

set_user_agent()

该方法用于设置 user agent。

参数:

  • user_agentuser agent文本

返回:None

as_dict()

该方法以dict方式返回所有配置信息。

参数:无

返回:配置信息

简单示例

from DrissionPage import MixPage
from DrissionPage.config import DriverOptions

# 创建配置对象(默认从 ini 文件中读取配置)
do = DriverOptions()
# 设置不加载图片、静音
do.set_no_imgs(True).set_mute(True)

# 以该配置创建页面对象
page = MixPage(driver_options=do)