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的地址

Selenium 、WebDriver :Capability的更多相关文章

  1. Selenium2学习-038-firefox、webdriver版本不对称问题解决:org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055

    今天有个朋友在群里问,为何脚本运行不通过,其脚本操作步骤简单描述如下: 1.启动火狐浏览器 2.打开百度 3.查询框输入关键字 4.点击按钮[百度一下] 脚本挺简单的,其给出的应用报错信息如下所示: ...

  2. Selenium(十三):验证码的处理、WebDriver原理

    1. 验证码的处理 对于Web应用来说,大部分的系统在用户登录时都要求用户输入验证码.验证码的类型很多,有字母数字的.有汉字的,甚至还需要用户输入一道算术题的答案的.对于系统来说,使用验证码可以有效地 ...

  3. [译]Selenium Python文档:七、WebDriver API接口

    由于API文档格式不太适合cnblog博客,暂且翻译一部分,且暂未校对 注意:这不是官方文档,官方 API文档在这里. 本章包含Selenium WebDriver的所有接口 推荐import风格 本 ...

  4. 网络爬虫(一):配置selenium、pycharm(windows平台)

    最近在学习爬虫的编写,使用selenium模块时候,遇到了很多坑,本blog的目的是总结一下遇到的坑和解决办法,以便后来人少走弯路! 以下介绍均以Python3.x为基准进行,基于windows平台的 ...

  5. 【Selenium+Python Webdriver】报错之:TypeError: user_login() missing 1 required positional argument: 'self'

    先贴一下源码: base.py文件如下: from selenium import webdriver class Page(object): ''' 页面基础类,用于所有页面的继承 ''' rb_u ...

  6. Selenium(十四):自动化测试模型介绍、模块化驱动测试案例、数据驱动测试案例

    1. 自动化测试模型介绍 随着自动化测试技术的发展,演化为了集中模型:线性测试.模块化驱动测试.数据驱动测试和关键字驱动测试. 下面分别介绍这几种自动化测试模型的特点. 1.1 线性测试 通过录制或编 ...

  7. Selenium(十二):操作Cookie、调用JavaScript、HTML5的视频播放

    1. 操作Cookie 有时候我们想要验证浏览器中cookie是否正确,因为基于真实cookie的测试是无法通过白盒和集成测试的.WebDriver提供了操作Cookie的相关方法,可以读取.添加和删 ...

  8. [译]Selenium Python文档:八、附录:FAQ常见问题

    另外一个FAQ:https://github.com/SeleniumHQ/selenium/wiki/Frequently-Asked-Questions 8.1.怎样使用ChromeDriver ...

  9. Selenium VS Webdriver

    Selenium 是 ThroughtWorks 一个强大的基于浏览器的开源自动化测试工具,它通常用来编写 Web 应用的自动化测试.随着 Selenium 团队发布 Selenium 2(又名 We ...

随机推荐

  1. JAVA获取运行环境的信息

    System.getProperties().list(System.out); 得到运行环境的信息

  2. 如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案

    如何优化Mysql千万级快速分页,limit优化快速分页,MySQL处理千万级数据查询的优化方案

  3. 用Redis作Mysql数据库缓存

    使用redis作mysql数据库缓存时,需要考虑两个问题: 1.确定用何种数据结构存储来自Mysql的数据; 2.在确定数据结构之后,用什么标识作为该数据结构的键. 直观上看,Mysql中的数据都是按 ...

  4. S3C2440的中断体系结构

    概述 S3C2440A中的中断控制器接受来自60个中断源的请求.提供这些中断源的可以是内部外设,如DMA控制器.UART.IIC等等.在这些中断源中,UARTn.AC97和EINTn中断对于中断控制器 ...

  5. Gulp Error: Cannot find module 'jshint/src/cli'

    I'm following sitepoint's An introduction to Gulp.js, but I'm stuck on step four, when I try to run  ...

  6. 【手记】VSTO部署中的坑

    局域网部署,客户机安装时报[部署清单签名的证书或其位置不受信任]: 在[Internet 属性]里(可运行inetcpl.cpl打开),把服务器内网IP加进[受信任站点]就好,不用管excel信任中心 ...

  7. 导入本地的oracle数据库文件

    1. 创建表空间 create tablespace charge_zang datafile 'F:\app\zang\oradata\orcl\charge_zang.dbf' size 50M ...

  8. Java字符串String

    Java字符串String 我们知道Java的字符窜是Immutable(不可变)的,一旦创建就不能更改其内容了:平常我们对字符串的操作是最多的,其实对字符串的操作,返回的字符串都是新建的字符串对象, ...

  9. 【Java基础】15、负数的二进制表示方法

    在计算机中,负数以其正值的补码形式表达. 什么叫补码呢?这得从原码,反码说起. 原码:一个整数,按照绝对值大小转换成的二进制数,称为原码. 比如 00000000 00000000 00000000 ...

  10. Java static 语句块

    总结前一天学习,参考原文http://www.cnblogs.com/dolphin0520/p/3799052.html1: 对Static有了进一步的认识    这个地方重点是初始化各个变量顺序, ...