Selenium 、WebDriver :Capability

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中的top(0)或者bottom(1)。默认是滚动到top。

2、RemoteWebDriver特有配置

Key

Type

描述

webdriver.remote.sessionid

string

这是一个只读属性。

webdriver.remote.quietExceptoins

boolean

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

3、Grid特有的配置

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无关了。当ChromeDriver被kill时,chrome将退出,不管session是否退出了。

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

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

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

bufferUsageReportInterval

integer

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

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

强制使用CreateProcess的API来启动IE浏览器。如果没有指定该选项,启动IE时是IELaunchURL(浏览器配置的首页)。对于IE8以上的浏览器,如果开启这个选项,就需要要求在注册表里设置TabProcGrowth为0,也就是单进程模式,启用浏览器时,其实是创建了一个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 Server的 extract file(插件)的目录。默认是TEMP目录。

silent

boolean

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

ie.setProxyByServer

boolean

是否使用WebDriver Server来设置Proxy。这个选项是用来定义由谁来设置Proxy。true 代表使用WebDriver,false代表使用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: 手动配置代理。例如为HTTP、FTP设置代理等。

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

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

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

ftpProxy,

httpProxy,

sslProxy,

socksProxy

string

只在proxyType=manual时生效。

手动配置相关协议的proxy

socksUsername

string

配置socksProxy的username。

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

socksPassword

string

配置socksProxy的password。

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

noProxy

string

只在proxyType=manual时生效。

指定proxy bypass的地址

上一篇:make文件中静态连接库在command里面的位置


下一篇:Go语言的优点(oschina讨论)