Selenium 之订制启动Chrome的选项(Options)

2023-11-20

使用 selenium 时,我们可能需要对 chrome 做一些特殊的设置,以完成我们期望的浏览器行为,比如阻止图片加载,阻止JavaScript执行 等动作。这些需要 selenium的 ChromeOptions 来帮助我们完成


1、什么是 chromeoptions
chromeoptions 是一个方便控制 chrome 启动时属性的类。通过 selenium 的源码,可以看到,chromeoptions 主要提供如下的功能:
(1)设置 chrome 二进制文件位置 (binary_location)
(2)添加启动参数 (add_argument)
(3)添加扩展应用 (add_extension, add_encoded_extension)
(4)添加实验性质的设置参数 (add_experimental_option)
(5)设置调试器地址 (debugger_address)
 

2、定制启动选项
我们最常用的是三个功能
(1)添加chrome启动参数

下面以python为例一一说明,其他语言可以参考 selenium 源码简单记录几个常用的添加浏览器启动设置

 

# 启动时设置默认语言为中文 UTF-8
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('lang=zh_CN.UTF-8')
driver = webdriver.Chrome(chrome_options = options)

 

 

最常用的应用场景是设置user-agent以用来模拟移动设备,比如模拟 iphone6

 

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"')

 

 

(2)修改chrome设置

 

# 禁止图片加载
from selenium import webdriver
options = webdriver.ChromeOptions()
prefs = {
    'profile.default_content_setting_values' : {
        'images' : 2
    }
}
options.add_experimental_option('prefs',prefs)
driver = webdriver.Chrome(chrome_options = options)
driver.get("http://www.baidu.com/")


(3)添加扩展应用

 

 

from selenium import webdriver
options = webdriver.ChromeOptions()
extension_path = '/extension/path'
options.add_extension(extension_path)
driver = webdriver.Chrome(chrome_options = options)

 

 

(4)附赠添加代理方法

 

from selenium import webdriver
PROXY = "proxy_host:proxy:port"
options = webdriver.ChromeOptions()
desired_capabilities = options.to_capabilities()
desired_capabilities['proxy'] = {
    "httpProxy":PROXY,
    "ftpProxy":PROXY,
    "sslProxy":PROXY,
    "noProxy":None,
    "proxyType":"MANUAL",
    "class":"org.openqa.selenium.Proxy",
    "autodetect":False
}
driver = webdriver.Chrome(desired_capabilities = desired_capabilities)

 

 

5、启动浏览器,最大化

 

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
driver = webdriver.Chrome(chrome_options=options)

 

 

6、指定driver地址

 

from selenium import webdriver

driver = webdriver.Chrome(executable_path='..drivers\chromedriver.exe')

这个地方的executable_path,可以是一个相对路径或一个绝对路径

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium 之订制启动Chrome的选项(Options) 的相关文章

  • 可持久化线段树(主席树)【舰娘系列】【自编题】

    pixiv https www pixiv net member illust php mode medium illust id 60083619 向大 hei 佬 e 势力学 di 习 tou 前段时间做了一套大佬自己出的题 大佬竟然是
  • 利用Qt Assistant 修改帮助文档可能会出现的修改失败的问题

    关于利用Qt Assistant定制帮助文档 网络上已有相关教程 在使用该教程定制帮助文档时 初次创建没有问题 但是当我要修改文档结构时 会出现修改失败的情况 例如明明有些文件已经从qch中删除 但是生成qhc文件后使用assistant
  • BugkuCTF-WEB题文件上传

    启动场景 发现是文件上传 只能上传图像 不能上传PHP文件 那应该是寻找漏洞上传PHP文件 PHP文件里写入一句话木马 使用burp抓包 不断尝试发现发现需要修改的地方有三个 一个是http head里的Content Type multi
  • C语言中如何提取三位数的各个数字,怎样用C程序提取一个3位数的各个数位?

    如果简单点就int i 123 int k s k i 10 个位数s i 100 10 十位数i i 100 百位数 include void main int a int b c d 各个位数上的数字 printf 请输入一个三位数 s
  • C++ string获取文件路径文件名、文件路径、文件后缀(两种方式)

    windows路径有两种方式 一种正斜杠 一种反斜杠都可以表示路径 该方法可以支持这两种表达方法 方法一 采用substr 进行分割 string path1 D datas FusionTestData datas GF6 PMS E11
  • BigInteger详解

    java math BigInteger 表示任意大小的整数 当使用一个数超过了int型时就可以使用BigInteger 1 int型的范围 2 31 2 31 1 即 2147483648 2147483647 2 使用BigIntege
  • vector,list,deque区别

    http blog csdn net renkaihao article details 6803866 vector和built in数组类似 它拥有一段连续的内存空间 并且起始地址不变 因此它能非常好的支持随即存取 即 操作符 但由于它
  • python3如何使用matplotlib库_python3 的 matplotlib绘图库的使用

    1 绘制第一幅图表 1 figure函数 创建图表 2 subplot函数 创建子图 3 在多个图表中创建子图 4 plot 函数 画函数图像 5 sca 函数 选择子图 6 在 一张表中画多个曲线 2 直方图 3 散点图 4 饼图 5 图
  • 【Java基础知识 15】java反射机制原理详解

    Java学习路线 搬砖工逆袭Java架构师 简介 Java领域优质创作者 CSDN哪吒公众号作者 Java架构师奋斗者 扫描主页左侧二维码 加入群聊 一起学习 一起进步 欢迎点赞 收藏 留言 目录 一 类的加载与ClassLoader的理解
  • 干货分享

    对于数据分析师 建模工程师来说 将处理好的数据放在可视化的面板上进行呈现将更加有助于同事 领导来理解结果 今天小编就给大家来介绍一下如何用Python来制作一个数据可视化面板 使用的是Streamlit库 对于开发人员来说 只需几分钟就可以
  • Linux系统下如何修改主机名

    Linux系统安装好后 都会有默认的主机名 这里是用CentOS系统为例 默认的主机名是localhost localdomain 为了便于使用 我们常常需要修改主机名 下面演示是永久修改主机名的方法 第一步 更改 etc sysconfi
  • 利用docker搭漏洞环境并复现案例(crlf、目录穿越)

    准备 1 安装docker 2 导入漏洞环境文 3 配置漏洞文件 CRLF 原理 复现 目录穿越漏洞 准备 1 安装docker 1 更新系统软件包 sudo yum update 2 安装 Docker 的依赖软件包 sudo yum i
  • 腾讯云CVM云服务器实例族是什么?区别选择攻略

    腾讯云服务器CVM有多种实例族 如标准型S6 标准型S5 SA3实例 高IO型 内存 计算型及GPU型实例等 如何选择云服务器CVM实例规格呢 腾讯云服务器网建议根据实际使用场景选择云服务器CVM规格 例如Web网站应用可以选择标准型S5或
  • UML总结4---UML九种图关系说明

    UML中包括九种图 用例图 类图 对象图 状态图 时序图 协作图 活动图 组件图 配置图 用例图 Use Case Diagram 它是UML中最简单也是最复杂的一种图 说它简单是因为它采用了面向对象的思想 又是基于用户视角的 绘制非常容易
  • gRPC C++开发环境搭建

    特别需要强调 grpc需要6 3以上的gcc g 版本 如果低于此版本的需要参考文档进行升级 cmake gcc的版本 ubuntu16 04默认的版本不支持 1 安装必要的依赖工具 安装必要的依赖工具 sudo apt get insta
  • OneNote 深度评测:使用资源、插件、模版

    评测 OneNote 是生产力办公套件 Office 微软所提供 大厂背景 不用担心微软跑路 免费 主要是指使用免费 由于 OneNote 默认是存储至 OneDrive 之上 如果你要存一些比较大的文件 那边需要你付费购买 OneDriv
  • JVM的类加载机制

    1 概述 JVM是Java语言实现跨平台的关键 Java语言的运行过程 java通过编译器编译为 class 通用字节码文件并不能直接被操作系统所识别 针对不同的操作系统可安装对应的JVM JVM将字节码解释为当前平台所能识别的机器码实现
  • Failed to bind properties under ‘spring.datasource.type‘ to java.lang.Class<javax.sql.DataSource>

    Description Failed to bind properties under spring datasource type to java lang Class
  • 准备三个月,终拿快手offer!薪资28k*16

    昨天有VIP小伙伴给小孟说 拿到了快手的offer 聊了半个小时 待遇还不错 准备去了 28k 16薪 快手的k3c职级可对标阿里的P7 前面我说过 能去大厂就去大厂 有机会就去争取 年纪轻轻的 多努力就完事了 找工作运气占很大的成分 甚至
  • 关于Robomaster机甲大师比赛的Yaw轴电机齿轮比不为1:1的解决方法

    Yaw轴电机齿轮比不为1 1的解决方法 问题 解决办法 弊端 问题 在Robomaster比赛中我们的英雄机器人的机械结构没做好 整体做得稍微有点大 云台也是很有质量 于是采用了6020电机带动齿轮1 1 5转动 但这样带来的结果就是有时候

随机推荐

  • 大数据技术之Zookeeper

    大数据技术之Zookeeper 一 zookeeper特点 二 zookeeper单机模式 三 zookeeper 常用命令 四 查看zookeeper 状态的几种方式 一 zookeeper特点 Zookeeper 文件系统 通知机制 1
  • 从零玩转人脸识别之RGB人脸活体检测

    从零玩转RGB人脸活体检测 前言 作者个人博客 点击前往 本期教程人脸识别第三方平台为虹软科技 本文章讲解的是人脸识别RGB活体追踪技术 免费的功能很多可以自行搭配 希望在你看完本章课程有所收获 ArcFace 离线SDK 包含人脸检测 性
  • short定义的两个数相加最后越界问题

    Java 程序语言提供了一些可以作用在整数值上的操作数 比较运算子 得到 boolean 型别的值 数值比较运算子 lt gt gt 和 gt 15 20 1 数值相等运算子 和 15 21 1 数值运算子 得到 int 或 long 型别
  • java pakage、import关键字

    package介绍 常用的包 import 案例
  • C语言结构体初始化的四种方法

    定义 struct InitMember int first double second char third float four 方法一 定义时赋值 struct InitMember test 10 3 141590 method o
  • 静态功耗具体指什么

    之前我的理解一直为静态功耗等同于关机功耗 今天专门搜索了解了下 百度百科给出的定义是指漏电流功耗 是电路状态稳定时的功耗 其数量级很小 其实这个定义很模糊 怎样的状态是电路稳定状态 我自己的理解是静态功耗为两种 一 等同于关机功耗 即器件全
  • ssh连接很慢GSS failure解决办法

    什么导致了 scp 和 ssh 的登陆提示速度下降 就我自身所遇到的情况来看 这些延迟绝大部分是 GSSAPI 的认证功能导致的 你可以用 v 选项确认你的情况 例如 下面是 ssh 的详细登陆过程 cherry cherry ssh v
  • 原生JS实现随着鼠标滚动到元素位置触发对应css3动画,简单易用

    废话不多说 直接上代码 附用法 纯博主手写 看完后 觉得好左上角请点个赞 觉得不好的请留下您的建议 谢谢 此代码改版很方便 大家可以任意发挥 注意 如果不想自己写动画的 可以引入Animate css 相信这个动画库大家都不陌生 body
  • modbus协议crc校验c语言代码,modbus协议crc校验

    数据校验是数据传输必不可少的一部分 主要目的就是防止数据传输过程中出现差错 本文主要根据原理实现它的核心代码 预置1个16位的寄存器为十六进制FFFF 全1 此寄存器为CRC寄存器 把第一个8位二进制数据 即通讯信息帧的第一个字节 与16位
  • MySQL 常用高可用方案

    这一节内容来简单聊聊 MySQL 最常用的几种高可用方案 1 主从或主主 Keepalived 主从或主主 Keepalived 算是历史比较悠久的 MySQL 高可用方案 常见架构如下 其大致原理是 在主实例的 Keepalived 中
  • AIGC之Stable Diffusion 提示词学徒库

    前言 描述 本文主要用来记录 提示词TAG 一 提示词 1 提升画面品质的提示词 masterpiece 杰作 best quality 最佳品质 ultra highers 超高分辨率 8k resolution 8k分辨率 realis
  • C++基础问题

    1 在 main 函数执行之前和之后的代码可能是什么 main 函数执行之前 初始化系统相关资源 设置栈指针 初始化 static 变量和 global 变量 未初始化的全局变量赋初值 全局对象初始化 这里会调用构造函数 这是可能会调用的代
  • 为什么越来越多的 IT 人考软考?

    近几年随着国家计算机与软件技术的发展 每年报名参加软考考试的人也越来越多 据工信部新闻发布会消息 计算机软件与通信专业技术人员职业资格考试累计报考人数超过485万 2022年报考人数129万人 01 为什么越来越多的IT人考软考证书 1 软
  • 【精品示例】超实用Python爬虫入门实例——做一个优质舔狗

    引言 最近发现了一个有意思的网站 里面充斥了大量的舔狗箴言 作为一个爬虫发烧友怎么能错过此等机会 咱们直接就是上才艺 类的编写 本次爬虫使用了多协程的方案进行 保证了爬虫的速度 在这里我们新建一个爬虫类 并在里边添加上我们需要的方法 网页的
  • IDEA打包上传到阿里云私服

    上传阿里云私服报错 ERROR Failed to execute goal org apache maven plugins maven deploy plugin 2 8 2 deploy default deploy on proje
  • 通讯录系统图形化界面(C++,Qt5.12)(Visual Studio2019,QtCreator)(初学)

    目录 无用的前言 无用的话 无需用看 前言 一 开发工具 二 功能演示以及 源码和安装包 下载 三 功能介绍以及设计思路 四 代码具体实现 项目文件结构 main cpp mainwindow ui mainwindow h mainwin
  • 2.前端笔记-CSS-字体属性

    1 字体系列 CSS使用font family属性定义文本的字体系列 body font family 思源黑体 Microsoft YaHei 建议 使用英文写字体的属性值 尽量使用系统默认自带字体 保证在任何用户的浏览器都可以显示 微软
  • react 入坑学习(十四)混合菜单新模式(ANT ProLayout)

    混合菜单新模式 样例 Ant Design Pro Blog 文档 这个明显就比非混合的好看很多 今天就来试试改一改吧 现在官网中找到ProLayout 就可以找到这个混合模式的源码样例 import React from react im
  • css实现文本超出显示省略号

    一 普通情况下 1 固定width 2 overflow hidden 3 text overflow ellipsis 显示为省略号 4 white space nowrap 不换行 二 table表格里 td 设置上面的4步 table
  • Selenium 之订制启动Chrome的选项(Options)

    使用 selenium 时 我们可能需要对 chrome 做一些特殊的设置 以完成我们期望的浏览器行为 比如阻止图片加载 阻止JavaScript执行 等动作 这些需要 selenium的 ChromeOptions 来帮助我们完成 1 什