您的位置:首页 > 其它

selenium官方wiki翻译

2015-03-16 09:36 148 查看
闲来无事,看看测试,最近来和appium框架做斗争,需要了解selenium的相关知识,来吧直接看google wiki的介绍

The WebDriver Wire Protocol

(译者注:该协议目前正在处于起草状态,但是看其发展的这么好,以后肯定会成为规范)

介绍

所有与浏览器进行通信WebDriver接口,或者RemoteWebDriver服务器都应该使用普通的线性协议。这个线性协议使用JSON来定义HTTP上的RESTful网页服务。

该协议会假设WebDriver的API已经很稳定了,但是希望客户端的实现能够更趋向于是面向对象的(译者注:意思是在面向对象上面还有待提高),类似于现有的Java API。该线性协议中使用command和responses来实现了request/response的概念。

基本术语和概念

客户端

使用WebDriver API的机器

服务器

执行RemoteWebDriver的机器,该术语也指代直接实现线性协议的浏览器,比如firefox和IphoneDriver

Session

服务器需要管理一个浏览器上的每一个session。向session发送的命令会直接转到对应的浏览器。

WebElement

WebDriver API中的每一个对象代表网页上的一个DOM元素。

WebElement JSON Object

通过有线协议进行传输时,一个JSON代表一个WebElement对象。该JSON含有以下属性:

属性名类型描述
ELEMENTstring由服务器分配给元素一个模糊ID。这个ID会在后续的命令中用到。
Capabilities JSON Object

(译者注,这个术语不好翻译,暂且理解包含很多测试相关属性的JSON属性吧)

不是所有的服务器实现都支持WebDriver的所有功能。因此客户端和服务器之间需要使用JSON对象来包含下面列举的属性,这些属性描述了session支持哪些功能。

属性名类型描述
browserNamestring所使用的浏览器名称,应该是下面浏览器之一:chrome/firefox/htmlunit/ie/iphone
versionstring浏览器版本,如果位置浏览器该属性为空
platformstring该属性代表浏览器运行的操作系统版本,应该是以下系统之一:WINDOWS/XP/VISTA/MAC/LINUX/UNIX。当正在注册一个新session时,客户端会指定ANY关键字指代任何可用的平台。
javascriptEnabledboolean是否支持在当前页面的上下文中执行用户提供的JavaScript
taskesScreenshotboolean是否支持在当前页面中进行截图操作
handlesAlertsboolean是否支持与弹出框进行交互,例如window.altert和window.confirm。
databaseEnabledboolean是否支持和数据库进行交互
locationContextEnabledboolean是否支持更改和查询浏览器的位置信息
applicationCacheEnabledboolean是否支持和应用缓存进行交互
browserConnectionEnabledboolean是否支持查询浏览器连接状态,以及在必要的时候能否禁用
cssSelectorsEnabledboolean在查询元素的时候是否支持CSS选择器
webStorageEnabledboolean是否支持和存储对象进行交互
rotatableboolean是否支持在纵向和横向方向上旋转当前应用界面中的布局(仅支持移动版本)
acceptSslCertsboolean默认情况下是否接受SSL证书
nativeEventsboolean当模拟用户输入时,是否能够产生本地事件
proxyproxy 对象使用的代理细节信息。如果没有指定代理,系统会使用当前状态或者默认状态。该对象的格式是一个特殊的Proxy的JSON对象。
Desired Capabilities
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: