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 |
指定代理配置 |
|
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的更多相关文章
- 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.点击按钮[百度一下] 脚本挺简单的,其给出的应用报错信息如下所示: ...
- Selenium(十三):验证码的处理、WebDriver原理
1. 验证码的处理 对于Web应用来说,大部分的系统在用户登录时都要求用户输入验证码.验证码的类型很多,有字母数字的.有汉字的,甚至还需要用户输入一道算术题的答案的.对于系统来说,使用验证码可以有效地 ...
- [译]Selenium Python文档:七、WebDriver API接口
由于API文档格式不太适合cnblog博客,暂且翻译一部分,且暂未校对 注意:这不是官方文档,官方 API文档在这里. 本章包含Selenium WebDriver的所有接口 推荐import风格 本 ...
- 网络爬虫(一):配置selenium、pycharm(windows平台)
最近在学习爬虫的编写,使用selenium模块时候,遇到了很多坑,本blog的目的是总结一下遇到的坑和解决办法,以便后来人少走弯路! 以下介绍均以Python3.x为基准进行,基于windows平台的 ...
- 【Selenium+Python Webdriver】报错之:TypeError: user_login() missing 1 required positional argument: 'self'
先贴一下源码: base.py文件如下: from selenium import webdriver class Page(object): ''' 页面基础类,用于所有页面的继承 ''' rb_u ...
- Selenium(十四):自动化测试模型介绍、模块化驱动测试案例、数据驱动测试案例
1. 自动化测试模型介绍 随着自动化测试技术的发展,演化为了集中模型:线性测试.模块化驱动测试.数据驱动测试和关键字驱动测试. 下面分别介绍这几种自动化测试模型的特点. 1.1 线性测试 通过录制或编 ...
- Selenium(十二):操作Cookie、调用JavaScript、HTML5的视频播放
1. 操作Cookie 有时候我们想要验证浏览器中cookie是否正确,因为基于真实cookie的测试是无法通过白盒和集成测试的.WebDriver提供了操作Cookie的相关方法,可以读取.添加和删 ...
- [译]Selenium Python文档:八、附录:FAQ常见问题
另外一个FAQ:https://github.com/SeleniumHQ/selenium/wiki/Frequently-Asked-Questions 8.1.怎样使用ChromeDriver ...
- Selenium VS Webdriver
Selenium 是 ThroughtWorks 一个强大的基于浏览器的开源自动化测试工具,它通常用来编写 Web 应用的自动化测试.随着 Selenium 团队发布 Selenium 2(又名 We ...
随机推荐
- Eclipse markers窗口使用
项目提示有错误,又不知道错误是哪里导致的,这时你可以打开eclipse的markers窗口查看错误信息或者警告信息 markers窗口提示信息: 到项目工程目录的settings目录下找到org.ec ...
- 【随笔】nginx add_header指令的使用
nginx配置文件通过使用add_header指令来设置response header. 具体方法如下: add_header key value add_header Cache-Control n ...
- PHP-CPP开发扩展(二)
PHP-CPP是一个用于开发PHP扩展的C++库.本节讲解PHP输出和函数的实现. 输出和错误 上面的helloworld示例里,我们使用Php::out进行输出,并使用了std::endl换行刷新缓 ...
- 使用Dockerfile制作JDK+tomcat镜像
1.准备好jdk和tomcatapache-tomcat-8.5.32.tar.gzjdk-8u181-linux-x64.tar.gz 注意:a.jdk和tomcat记得从官网下载,否则制作出来的镜 ...
- python3爬虫——下载unsplash美图到本地
最近发现一个网站www.unsplash.com ( 没有广告费哈,纯粹觉得不错 ),网页做得很美观,上面也都是一些免费的摄影照片,觉得很好看,就决定利用蹩脚的技能写个爬虫下载图片. 先随意感受一下这 ...
- Maven教程4(私服-nexus)
仓库管理器也叫私服或代理仓库 仓库管理器有两个服务目的:首先它的角色是一个高度可配置的介于你的组织与公开Maven仓库之间的代理,其次它为你的组织提供了一个可部署你组织内部生成的构件的地方. 1Nex ...
- asp.net mvc 碰到 XML 解析错误:找不到根元素 位置
具体报错信息如下: XML 解析错误:找不到根元素 位置:moz-nullprincipal:{4a1d2b7c-6d07-468e-9df9-2267a0422c93} 行 1,列 1: 网上给出的 ...
- jQuery基础教程
1.使用$()函数 $()函数其实是创建了一个jQuery对象. 这个函数接受CSS选择符作为参数,充当一个工厂, 返回包含页面中对应元素的jQuery对象. 所有能在样式表中使用的选择符都可以传给这 ...
- [PHP] 算法-统计一个数字在排序数组中出现的次数的PHP实现
统计一个数字在排序数组中出现的次数. 1.有序的数组查找,使用二分法 2.二分法查找第一次出现的位置,二分法查找最后一次出现的位置,end - start +1 left=getLeft(data,k ...
- 【Java】模拟Sping,实现其IOC和AOP核心(一)
在这里我要实现的是Spring的IOC和AOP的核心,而且有关IOC的实现,注解+XML能混合使用! 参考资料: IOC:控制反转(Inversion of Control,缩写为IoC),是面向对象 ...