使用 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,可以是一个相对路径或一个绝对路径
配置linux系统1.1实验前准备把下载的hadoop和jdk分别移到这两个文件夹中。(这两个文件夹是自己建的)将jdk和hadoop压缩包拖进所创建的目录1.2配置时钟同步1.在Master节点上配置(1)配置自动时钟同步。0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org(2)手动同步时间/usr/sbin/ntpdate cn.poo...
51单片机(呼吸灯)C语言版.docx基于单片机与 PWM 的呼吸灯设计实训指导教师 班级设 计 人姓名设 计日 期设 计地 点完 成时 间摘要本 是基于 片机的原理与接口 ,采用 片机I/O 口,加以 C 言 程 LED 亮再 暗 似人的呼吸一 的效果。关键词AT89C51,PWM脉 制 一、设计要求呼吸灯就是 LED 灯的 像呼吸一 , 呼 吸, 亮 暗,利用LED的余 和人眼的 留效 ,看上...
mysqldump -u xueyu2gm -p lszm_reku0 cdkey_info -t -T /data/mysql/data/ --fields-terminated-by=','1、lszm_reku0 :导出的数据库; 2、cdkey_info:导出的数据表; 3、-t :不导出create 信息; 4、-T 指定到处的位置,注意目录权限; 5、--fields-enclosed...
问题描述插入USB摄像头后,开启 VMware Workstation Pro 12 中 ubuntu 系统,win10 系统就蓝屏。解决方法VMware Workstation Pro 12 版本太低,与 win10 系统兼容性不好,更换高版本的 VMware Workstation Pro。卸载 VMware Workstation Pro 12(先移除该软件中的系统)链接: https://blog.csdn.net/weixin_44079558/article/details/1025
JAVA四种引用(强引用,弱引用,软引用,虚引用)[toc]总结:强引用(StrongReference):效果:存在强引用的对象,不会被JVM回收。回收:当所有的强引用都断开后,在JVM进行垃圾回收时,该对象会被回收。// 强引用String str = new String("Reference");// 置空obj = null;// 指向另一对象obj= newObject();软应用(S...
[email protected]注解定义全局处理异常类,异常处理类于@ControllerAdvice相比不需要添加@ResponseBody就可以返回JSON格式异常,@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@[email protected]@ResponseBodyp...
使用JavaWeb开发的一款商城项目,可以衍生出其他各种商品销售网站前台:书籍查看,分页,购物车,个人信息,登录注册,按类别检索后台:用户管理,类别管理,用户管理,订单管理 JavaWeb网上书店运行视频 ...
列表和字段都可以在原处进行修改,可以按照需求增长或缩短,并且可以包含任何类型的对象或被嵌套。列表和字典存储的是对象的引用,而不是拷贝。一,列表列表是有序的序列,每一个列表项的顺序是固定的,这使得列表可以通过指定的偏移来索引和分片。列表是可变的序列,支持在原处修改。列表项可以是任何类型,或对象,也可以嵌套列表。1,列表的创建创建一个空的列表:>>> l=[]创建...
这里利用Vue进行简单的增删改查操作,可以与后台进行结合,进行增删改查的过程,只需要将接口改一下名字。其中element-ui组件库经常与vue进行结合,使用时需要提前安装好element-ui组件库的环境,这样就没有进行安装演示。1.效果截图先来康康效果吧目的:为了方便自己用到的时候拿出来进行学习参照给像我一样刚接触这方面知识的朋友分享(前期不知道如何去百度)@Boblim 常用命令大全 刚接触的时候用 CSDNhttps://www.cnblogs.com/fnlingnzb-learner/p/[email protected] centos ...
使用域组策略/脚本统一配置防火墙目前企业内网多为域环境,部分企业应用例如入侵检测等需要客户端统一开放某一端口比如Ping,如果企业环境较大,客户端数千个逐个设置将是浪费工作效率且不灵活的方案;所以可以通过使用域策略来统一设置;统一配置可以通过域策略中自带的防火墙模板来设置,也可以通过使用bat脚本来配置,下面即分别演示配置方法;1域组策略统一配置防火墙使用域管理员登录域控制器,打开“管理工具>...
ACM模版描述题解类似于最长公共子序列问题,略微不同,另外需要考虑到重复状态的去重与否。代码#include <iostream>#include <cstdio>typedef long long ll;using namespace std;const int mod = 1000000007;int a[1005], b[1005];long long dp[1005][1005];int