Selenium 、WebDriver :Capability-程序员宅基地

技术标签: python  操作系统  移动开发  

Selenium | WebDriver Capability

内容摘要:

 

1、WebDriver Client通用配置

用于webdriver server 选择浏览器的配置:

Key

Type

描述

browserName

string

要使用的浏览器名称。可取值:

android,

chrome,

firefox,

htmlunit,

internet explorer,

iPhone,

iPod,

opera,

safari

version

string

浏览器的版本。如果不知道就是空字符串。

platform

string

指定浏览器在那种平台下运行。可取值:

WINDOWS,

XP,

VISTA,

MAC,

LINUX,

UNIX,

ANDROID

 

 

只读配置:

Key

Type

描述

handleAlerts

boolean

检测Session期间是否可以一模态窗口方式进行交换。可以理解为是否支持操作:

Window.alert()

Window.confim() 是模态方式的

cssSelectorEnabled

string

检测session期间是否支持使用css selector来检索dom 元素。

 

 

可以读写的配置:

Key

Type

描述

javascriptEnabled

boolean

检测Session期间是否可以执行用户提供的JavaScript代码(只在HTMLUnitDriver中生效)。

databaseEnabled

boolean

检测session期间是否支持使用数据库存储。

locationContextEnabled

boolean

检测seesion期间是否可以使用浏览器的Location Context 对象。

applicationCacheEnabled

boolean

检测session期间是否支持使用应用缓存。

browserConnectionEnabled

boolean

检测session期间是否支持查找浏览器的connection,并在需要时可以断开连接。

webStorageEnabled

boolean

检测是否启用WebStorage

acceptSslCerts

boolean

检测是否session要接受所有的SSL certs

rotatable

boolean

检测是否支持旋转(只能用于移动平台)。

nativeEvents

boolean

检测session期间,在模拟用户输入时,是否支持生成native 事件。

proxy

Proxy

Object

指定代理配置

参考 WebDriver Proxy Config 小节

unexpectedAlertBehaviour

string

当发生了unexpected Alert时,browser应该怎么做。可选值有:accept,dismiss,ignore

elementScrollBehavior

integer

允许用户去指定是否元素要滚动到viewport中的top0)或者bottom1)。默认是滚动到top

 

2RemoteWebDriver特有配置

Key

Type

描述

webdriver.remote.sessionid

string

这是一个只读属性。

webdriver.remote.quietExceptoins

boolean

禁用出现异常时自动截屏。默认值是false

 

 

3Grid特有的配置

 

Key

Type

描述

path

string

请求应该路由到哪个path

seleniumProtocol

string

使用哪种协议。可选值:WebDriver,Selenium

maxInstances

integer

允许连接到该grid的最大实例数

 

 

4在使用特定浏览器时WebDriver,RC配置

 

 

 

4.1 chrome

 

参考自:

https://sites.google.com/a/chromium.org/chromedriver/capabilities

 

Key

Type

描述

args

string

Chrome浏览器的启动参数。用=,来区分。例如:

['start-maximized','user-data-dir=/tmp/temp_profile']

binary

string

Chrome.exe位置。

extensions

Strings

启动是要Install的插件。

localState

Map

指定localState的字典。Map中每一个文件的文件名是 首选项和它的值。

prefs

Map

 

detach

boolean

这个配置是为了设置chrome实例的生命周期与session是否关联起来。

默认值是false

如果是false, 也就是与Session无关了。当ChromeDriverkill时,chrome将退出,不管session是否退出了。

如果设置为true,也就是与Session关联。当session退出或者closechrome才会退出。

debuggerAddress

string

Chrome debugger server 的地址

excludeSwitches

strings

Chrome 命令行参数 用于排除由ChromeDriver默认传递的。

minidumpPath

string

Chrome小文件转储的目录。只在Linux上生效。

mobileEmulation

Map

移动模拟器

perfLoggingPrefs

Map

Performance logging的配置。详情见下表。

 

 

perfLoggingPrefs

Key

Type

描述

enableNetwork

boolean

是否采集network事件。

enablePage

boolean

是否采集 page事件。

enableTimeline

boolean

是否采集timeline事件。如果tarcing启用了,enableTimeline的默认值就是false了。

tracingCategories

string

一个逗号隔开的字符串用于指定Chrometracing类别,如果什么也不指定,就是不启用tracing

bufferUsageReportInterval

integer

DevTools 报告buffer使用率的间隔。单位毫秒,more1000.

 

loggingPerfs

参见下面loggingPrefs小节。

 

 

4.2 Firefox

 

WebDriver配置:

Key

Type

描述

firefox_profile

string

Firefox的配置项。是一个Base64编码的配置内容。

参见下表。

loggingPrefs

LoggingPreferenceObject

Firefox日志配置。

参见下面的LoggingPrefs小节。

Firefox_binary

string

Firefox.exe path

pageLoadingStrategy

string

WebDriver 协议中的page load strategy

 

 

firefox_profile配置:

Key

Type

描述

webdriver_accept_untrusted_certs

boolean

是否信任所有的SSL 证书。

webdriver_assume_untrusted_issuer

boolean

是否信任所有的SSL认证机构。

webdriver.log.driver

string

FirefoxDriver 日志级别。可选值:DEBUG, INFO, WARNING, ERROR,OFF。默认值OFF

webdriver.log.file

string

日志文件位置

webdriver.load.strategy

string

为等待页面加载指定不同的策略。可选值:unstable, conservative。默认值是conservative

该配置项还是在实验阶段。

webdriver_firefox_port

integer

WebDriver Server中监听commands的端口。默认是7055

 

 

 

 

RC配置:

参考:https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities

 

 

4.3 IE

 

WebDriver的配置:

Key

Type

描述

ignoreProtectedModeSettings

boolean

是否跳过保护模式检查。

如果设置为true, 测试用例可能变得无响应、卡顿、甚至浏览器会hang

如果设置为false, 就必须要求IE浏览器的配置如下:【Internet 选项】> 【安全】,在此界面可以看到四个区域:Internet,本地Internet,可信站点,受限站点。要求这四个区域的是否启用保护模式的配置一定要相同,可以是都启用,也可以是都不启用。如果出现不同,就会导致启动失败。

ignoreZoomSetting

boolean

是否跳过检查浏览器的缩放级别设置为100%了没有。默认值是false

initialBrowserUrl

string

运行用户指定IE浏览器启动时初始URL。这个配置启动后,和ignoreProtectedModeSettings = true时 有一样的副作用。

enablePersistentHover

boolean

是否可以长时间hover。当持续的在某个元素上触发mouse over就构成了Persistent Hover

enableElementCacheCleanup

boolean

指定drvier是否去移除陈旧的dom element。启用后有助于减少 IE driver 内存占用。

requireWindowFocus

boolean

指定是否强制要求任何的用户交互操作时,必须要去窗口聚焦。

browserAttachTimeout

integer

Driver捆绑到一个新打开的IE实例的超时时间。单位毫秒。默认值是0,代表一直等待。

ie.forceCreateProcessApi

boolean

强制使用CreateProcessAPI来启动IE浏览器。如果没有指定该选项,启动IE时是IELaunchURL(浏览器配置的首页)。对于IE8以上的浏览器,如果开启这个选项,就需要要求在注册表里设置TabProcGrowth0,也就是单进程模式,启用浏览器时,其实是创建了一个tab

ie.browserCommandLineSwitches

string

指定在启动IE浏览器时的命令行配置项开关。这个配置项只在forceCreateProcess时生效。

ie.usePerProcessProxy

boolean

指定在使用Proxy时,Proxy的配置是指针对单个进程生效,还是针对整个系统的Proxy生效。

ie.ensureCleanSession

boolean

启动IE时是否先清理cache,cookie,history,form data等。另外,IE 浏览器里可以配置在关闭浏览器时清理这些数据。

logFile

String

WebDriver Server日志位置。默认是标准输出stdout里。

logLevel

String

WebDriver Server日志级别。可选值有:

TRACE,DEBUG,INFO,WARN,ERROR,FATAL

默认值是:FATAL

host

string

WebDriver Server host,默认是localhost

extractPath

string

WebDriver Serverextract file(插件)的目录。默认是TEMP目录。

silent

boolean

WebDriver Server启动后,压制诊断日志输出。

ie.setProxyByServer

boolean

是否使用WebDriver Server来设置Proxy。这个选项是用来定义由谁来设置Proxytrue 代表使用WebDriverfalse代表使用WindowsProxyManager

 

不同的WebDriver版本,该属性值不同,这点需要注意。

 

 

 

RC的配置:

参见:

https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities

 

 

 

4.4 LoggingPrefs

 

描述浏览器不同组件(包括driver,server,browser)的日志级别。

有效的值有:OFF,SERVER,WARNING,INFO,CONFIG,FINE,FINER,FINEST,ALL,

例如:

{"loggingPrefs": {"driver": "INFO", "server": "OFF", "browser": "FINE"}}

 

ChromeDriver, FirefoxDirver都会用到这个。

 

4.5 Proxy Config

这几个选项是WebDriver 协议里默认的,在使用各类浏览器时,都可用的。

Key

Type

描述

proxyType

string

指定Proxy类别,必要选项。可选值:

direct: 直连,不使用代理。

manual: 手动配置代理。例如为HTTPFTP设置代理等。

pac:从指定的URL里自动配置。

autodetect:自动获取,可能带有WPAD

system:使用系统默认的配置。

ftpProxy,

httpProxy,

sslProxy,

socksProxy

string

只在proxyType=manual时生效。

手动配置相关协议的proxy

socksUsername

string

配置socksProxyusername

只在proxyType=manual && socksProxy设置时生效。

socksPassword

string

配置socksProxypassword

只在proxyType=manual && socksProxy设置时生效。

noProxy

string

只在proxyType=manual时生效。

指定proxy bypass的地址

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33979745/article/details/85934229

智能推荐

Python的__new__方法_python new-程序员宅基地

文章浏览阅读751次。Python的__new__方法Python的__new__和__init__的区别先看一段代码#-*- coding:utf8 -*-""">>> A()new init<__main__.A object at 0x02473A30>"""class A(object): def __init__(self): pri_python new

python的input和while循环_python while input-程序员宅基地

文章浏览阅读455次。python的input和while使用一、Python input()函数:获取用户输入的字符串Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。Python2.x 中 input() 相等于 eval(raw_input(prompt)),用来获取控制台的输入。raw_input() 将所有输入作为字符串看待,返回字符串类型。而 ..._python while input

java method getdeclaredmethod,带有类类型的Java反射getDeclaredMethod()-程序员宅基地

文章浏览阅读243次。I'm trying to understand Java reflecton and am encountering difficulties when working with non-Integer setter methods.As an example, how can I resolve the "getDeclaredMethod()" call below?import java...._aclass.getdeclaredmethod

MySQL8.0.17 安装及配置_rpm安装mysql8.0.17 如何设置端口-程序员宅基地

文章浏览阅读876次。MySQL8.0.17 安装及配置1. 下载2. MySQL配置2.1 初始化2.2 配置环境变量2.3 安装2.4 修改密码1. 下载官网下载:https://dev.mysql.com/downloads/mysql/选择适合自己的版本,下载完成后解压到自己的文件夹下。2. MySQL配置2.1 初始化解压后的目录并没有的my.ini文件,没关系可以自行创建在安装根目录下添加的my..._rpm安装mysql8.0.17 如何设置端口

Spring Security教程(9)---- 自定义AccessDeniedHandler_accessdeniedhandler是干嘛的-程序员宅基地

文章浏览阅读2.9w次,点赞10次,收藏7次。在Spring默认的AccessDeniedHandler中只有对页面请求的处理,而没有对Ajax的处理。而在项目开发是Ajax又是我们要常用的技术,所以我们可以通过自定义AccessDeniedHandler来处理Ajax请求。我们在Spring默认的AccessDeniedHandlerImpl上稍作修改就可以了。public class DefaultAccessDeniedHandle_accessdeniedhandler是干嘛的

Timeout of 60000ms expired before the position for partition could be determined踩坑flink消费kafka2.3.0_timeout of 6000ms steam 解决-程序员宅基地

文章浏览阅读7.4k次,点赞5次,收藏10次。flink消费kafka2.3.0,时报错,分区分配的不对Kafka Client Timeout of 60000ms expired before the position for partition could be determined在网上找了一波,没找到原因,后面,误打误撞,发现,是因为,kafka的配置文件,server.properties,使用了主机名作为配置,在server.properties中添加host.name=192.168.0.30 (当前所在服务器的i._timeout of 6000ms steam 解决

随便推点

渗透测试——信息收集之JSFinder的使用_如何在kali中安装jsfinder-程序员宅基地

文章浏览阅读3.1k次。文章目录前言一、使用注意事项二、使用步骤1.下载后可以放入Kali里面通过Python运行。2.运行JSFinder.py总结前言JSFinder可以通过爬取网站各个页面的JS文件从而获得其中包含的网站的子域名,非常的好用,下面介绍JSFinder的使用方法,文章后面会给出JSFinder的下载地址。一、使用注意事项下载后通过命令行去直接执行,前提是Kali安装了python3及以上的版本,否则不行。二、使用步骤1.下载后可以放入Kali里面通过Python运行。2.运行JSF.._如何在kali中安装jsfinder

CausalVAE: Disentangled Representation Learning via Neural Structural Causal Models_yang, m., liu, f., chen, z., shen, x., hao, j., wa-程序员宅基地

文章浏览阅读692次。文章目录概主要内容模型ELBO关于AAAYang M., Liu F., Chen Z., Shen X., Hao J. and Wang J. CausalVAE: disentangled representation learning via neural structural causal models. arXiv preprint arXiv:2004.086975, 2020.概隐变量的因果表示.主要内容我们通常希望隐变量zzz能够表示一些特别的特征, 通过改变zzz使得生成的_yang, m., liu, f., chen, z., shen, x., hao, j., wang, j. causalvae: disentan

curl中的坑_curl 弊端-程序员宅基地

文章浏览阅读284次。问题:用curl方法向远端服务器发请求,如果成功,远端服务器会返回数据,对方要求用application/x-www-form-urlencode的请求头传输请求参数的数据。一开始用的是:$header = array();header[]=′application/x−www−form−urlencode′;curlsetopt(header[] = &#x27;applicatio..._curl 弊端

读书笔记:关于wsgi、web框架和模板的总结(python)_webinfo.wsgi模板文件-程序员宅基地

文章浏览阅读795次。在后台,Http服务器做的工作就是获取http请求,解析请求,用html文件作为body部分做http响应。wsgi的定义很简单,就是要求web应用开发者实现一个函数来响应Http请求。wsgi对于web应用开发者,屏蔽了http请求、解析,使其可专注于html文件的动态生成等业务逻辑。常用的静态服务器软件Apache、Nginx、Lighttpd等,python内置了一个wsg服务器,作为开发用_webinfo.wsgi模板文件

PAT乙级真题 1010 一元多项式求导 C++实现_pat一元多项式求导 c++-程序员宅基地

文章浏览阅读266次。题目设计函数求一元多项式的导数。输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。输入样例:3 4 -5 2 6 1 -2 0输出样例:12 3 -10 1 6 ..._pat一元多项式求导 c++

【SLAM】Ubuntu16.04下配置ORB-SLAM2_ubuntu16.04安装配置orb-slam2-程序员宅基地

文章浏览阅读2.4w次,点赞19次,收藏163次。本文记录了 ORB-SLAM2 在Ubuntu16.04下的安装过程._ubuntu16.04安装配置orb-slam2