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

什么是 chromeoptions

chromeoptions 是一个方便控制 chrome 启动时属性的类。通过 selenium 的源码,可以看到,chromeoptions 主要提供如下的功能:

设置 chrome 二进制文件位置 (binary_location)
添加启动参数 (add_argument)
添加扩展应用 (add_extension, add_encoded_extension)
添加实验性质的设置参数 (add_experimental_option)
设置调试器地址 (debugger_address)

定制启动选项
我们最常用的是三个功能

添加chrome启动参数
修改chrome设置
添加扩展应用

下面以python为例一一说明,其他语言可以参考 selenium 源码

添加 chrome 启动参数

# 启动时设置默认语言为中文 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"')

修改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)

更多实验参数请参考chromedriver 官网

添加扩展

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

附赠添加代理方法

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)

ChromeOptions--禁止加载图片相关推荐

  1. webdriver.chrome()禁止加载图片

    webdriver.chrome()禁止加载图片 from selenium import webdriver chrome_options = webdriver.ChromeOptions() p ...

  2. 手机chrome禁止加载图片

    怎么才能彻底关掉google-chrome的GPU加速 WIN系统: 在启动参数上加上:--disable-accelerated-compositing Linux系统: 升级到25.0.1364. ...

  3. Glide加载图片变形,刷新后恢复正常

    在listview,recycleview使用glide加载图片的时候出现第一次加载的图片略大,刷新后即可恢复正常的现象,影响用户体验 解决的方法: 首先将自己的imageview的scaleType ...

  4. RecyclerView 滑动时不让 Glide 加载图片

    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {@Overridepublic void onScrollS ...

  5. Glide加载图片的变形问题

    问题描述: 在listview,recycleview使用glide加载图片的时候出现第一次加载的图片略大,刷新后即可恢复正常的现象,影响用户体验 解决的方法: 首先将自己的imageview的sca ...

  6. Android开发解决加载图片OOM问题(非常全面 兼顾4 0以下系统)(by 星空武哥)

    转载请标明:http://blog.csdn.net/lsyz0021/article/details/51295402 我们项目中经常会加载图片,有时候如果加载图片过多的话,小则导致程序很卡,重则O ...

  7. Android框架之路——Glide加载图片(结合RecyclerView、CardView)

    Android框架之路--Glide加载图片 一.简介: 在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech.这个库被广泛的运用在google的开 ...

  8. 原生CSS设置预加载图片之前的默认背景图

    /*默认加载图片*/ .class-name { /*背景图片*/background: url(../../img/banner/banner-default.jpg) no-repeat cent ...

  9. 【Qt】QPixmap加载图片报错:Corrupt JPEG data: premature end of data segment Didn‘t expect more than one scan

    1.问题描述 在使用QPixmap加载图片时失败,错误信息如下 Corrupt JPEG data: premature end of data segment Didn't expect more ...

  10. 13-flutter 加载图片

    Image Widget 1 flutter 加载图片的方式 new Image 从ImageProvider 中获取图像 new Image.asset 使用key 从assetBundle 获取图 ...

最新文章

  1. Mac 从Makefile 编译 Rocksdb 源码的一些注意事项
  2. cs go linux 参数,CSGO 命令大全 给新手的福利 使用设置参数
  3. SAP UB类型的STO能自动创建交货单?
  4. “中文版GPT-3”来了:会算术、可续写红楼梦,用64张V100训练了3周
  5. 【最全!最完整解析!】 计算机中,执行一条指令所需要的时间称为指令周期,完成一项基本操作所需要的时间称为机器周期,时钟脉冲的重复周期称为重复周期。因此,()
  6. Android 中文API (37) —— AbsoluteLayout
  7. python爬虫简单示例
  8. 毕业论文写作与学术规范
  9. 鸿蒙1004鸿蒙,第1004章 【两成】
  10. 养成备份的习惯的重要性
  11. filevault(电子仓库)自动切换文件夹以及文档最大值设置
  12. 跟着老万学linux运维-vi编辑器中的大小写转换技巧
  13. 【DB.Oracle】同义词——SYNONYM
  14. JAVA移动垃圾分类车管理平台计算机毕业设计Mybatis+系统+数据库+调试部署
  15. 【网络】https单向认证和双向认证
  16. 标量、向量和矩阵的求导法则
  17. c 语言中古括号,如何将中古调式运用在你的作品上
  18. 单片机c语言字符串比较,代码对比
  19. 鸽巢原理(初识)(纯算法)
  20. oracle建表备份数据,oracle建表备份脚本,如果update的数据不对,可以从WEB_RI_PLYEDR_CED_BAK找回...

热门文章

  1. 如果你是CEO,你打算给自己开多少工资?
  2. CEO年薪过亿,谁说了算?
  3. Jetpack Compose中的Modifier
  4. 蚂蚁区块链第10课 可信计算及TEE硬件隐私合约链智能合约开发实践
  5. 服务器内网可以打开外网打不开怎么办?网站搭建后打不开怎么办?
  6. gethostbyname linux,gethostbyname()
  7. UITT不忘初心,为交易而生
  8. CentOS7 下安装 MySQL5.7 (包含mysql安装报错处理)
  9. 商业与计算机科学,新加坡留学:楷博高等教育商业信息系统与计算机科学课程解析...
  10. echarts修改标题字体大小、颜色、位置、内容