webdriver规范

  • 介绍

Selenium根据webdriver规范实现了Java、Python、Ruby、NodeJS等语言的客户端。那么原理是什么呢?

之所以能够通过写代码来实现操作浏览器,其实很简单,基本上任何语言都可以实现这样的效果——如果它能够发送网络请求的话。因为,webdriver给出的是restFul接口,通过该接口来发送请求就可以操作浏览器。

页面加载策略:none、normal、eager。

下面介绍webdriver的webapi:

  • 新建会话

POST /session

参数示例:

 

  • 关闭会话

DELETE /session/{sessionId}

  • 获取超时时间

GET /session/{sessionId}/timeouts

  • 地址导航

POST /session/{sessionId}/url

参数示例:

  • 获取地址

GET /session/{sessionId}/url

响应示例:

  • 回退

POST /session/{sessionId}/back

  • 向前

POST /session/{sessionId}/forward

  • 刷新

POST /session/{sessionId}/refresh

  • 获取标题(title)

GET /session/{sessionId}/title

  • 查找单个元素

POST /session/{sessionId}/element

  • 查找多个元素

POST /session/{sessionId}/elements

  • 查找单个子元素

POST /session/{sessionId}/element/{elementId}/element

  • 查找多个子元素

POST /session/{sessionId}/element/{elementId}/elements

  • 判断元素是否被选中

GET /session/{sessionId}/element/{elementId}/selected

响应示例:

 

  • 获取元素属性(Attribute)

GET /session/{sessionId}/element/{elementId}/attribute/{name}

响应示例:

 

  • 获取元素属性(Property)

GET /session/{sessionId}/element/{elementId}/property/{name}

  • 获取元素的CSS值

GET /session/{sessionId}/element/{elementId}/css/{name}

响应示例:

 

  • 获取元素的文本(Text)

GET /session/{sessionId}/element/{elementId}/text

  • 获取元素的名称(TagName)

GET /session/{sessionId}/element/{elementId}/name

  • 获取元素区域

GET /session/{sessionId}/element/{elementId}/rect

  • 判断元素是否可用

GET /session/{sessionId}/element/{elementId}/enabled

响应示例:

  • 点击元素

POST /session/{sessionId}/element/{elementId}/click

  • 清空元素

POST /session/{sessionId}/element/{elementId}/clear

  • 键盘事件

POST /session/{sessionId}/element/{elementId}/value

  • 获取页面源码

GET /session/{sessionId}/source

  • 阻塞方式执行脚本(javascript)

POST /session/{sessionId}/execute/sync

  • 异步方式执行脚本(javascript)

POST /session/{sessionId}/execute/async

  • 获取所有的cookie

GET /session/{sessionId}/cookie

响应示例:

 

  • 获取cookie的指定值

GET /session/{sessionId}/cookie/{name}

  • 增加cookie

POST /session/{sessionId}/cookie

  • 删除cookie

DELETE /session/{sessionId}/cookie/{name}

  • 删除所有cookie

DELETE /session/{sessionId}/cookie

  • 执行动作

POST /session/{sessionId}/actions

  • 清除动作

DELETE /session/{sessionId}/actions

  • 取消弹出框

POST /session/{sessionId/alert/dismiss

  • 确认弹出框

POST /session/{sessionId/alert/accept

  • 获取弹出框文本

GET /session/{sessionId/alert/text

  • 设置弹出框文本

POST /session/{sessionId/alert/text

  • 截屏

GET /session/{sessionId}/screenshot

  • 元素截屏

GET /session/{sessionId}/element/{elementId}/screenshot

  • 参考

https://w3c.github.io/webdriver/webdriver-spec.html#refresh

本文为原创,如果您当前访问的域名不是surenpi.com,请访问“素人派”。

发表评论

电子邮件地址不会被公开。 必填项已用*标注