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的地址 | 
作者: 房继诺
出处:http://www.cnblogs.com/f1194361820
版权:本文版权归作者和博客园共有
欢迎转载,转载请需要注明博客出处
技术交流QQ:1194361820,加好友请注明:来自博客园,不要说你是博客园,也可以扫描图像二维码直接加我。

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号