Appearance
websockt服务
概要
YinTao 启动后默认占用本机8888
端口,对外提供websocket服务。
它更适合在网页端使用避免触发CORS
通用数据协议
与http
不同Websocket
采用数据协议进行交互。
这意味着我们需要提供符合规范的数据才能被正确解析。
YinTao
内部采用json
结构传递数据。
例:
json
{
"api": "run",
"config": {
"script":"page.to('https://baidu.com')",
"storage": {"id":123}
}
}
{
"api": "run",
"config": {
"script":"page.to('https://baidu.com')",
"storage": {"id":123}
}
}
只需给websocket
连接发送这些数据,就能打开运行百度页面。 内部实现中http
以及websocket
都通过openApi
对外提供服务, 这意味着他们支持相同的配置格式。
快速接入
在大多数情况下,我们只需要以函数式的方式去使用, 因此YinTao提供对外便捷的函数式api文件封装。
文件内包含了详细的使用步骤,你只需要以工具类接入使用即可。 如果你需要实现更高级的功能实现,可以按照下列数据格式自行接入。
执行
说明: 运行脚本时调用,运行报告随请求返回
参数:
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
script | string | 空 | 执行的脚本 |
cookies | Cookie[] | 空 | 可接收cookie数组,用于初始化配置 |
storage | any | 空 | 自定义参数仓库 |
hosts | Map | 空 | host信息 {"域名":"解析IP地址"} |
数据格式:
json
{
"api": "live",
"config": {
"script":"page.to('https://baidu.com')",
"storage": {"id":123}
}
}
{
"api": "live",
"config": {
"script":"page.to('https://baidu.com')",
"storage": {"id":123}
}
}
结果示例
json
{
"duration": 9392.7518,
"success": true,
"msg": "",
"divertor": [],
"code": 2000,
"storage": {
"case_id": 12
}
}
{
"duration": 9392.7518,
"success": true,
"msg": "",
"divertor": [],
"code": 2000,
"storage": {
"case_id": 12
}
}
录制
说明: 录制脚本时调用,录制结果请求响应返回
参数:
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
url | string | 空 | 录制时默认打开的地址 |
storage | any | 空 | 自定义参数仓库 |
| cookies | [Cookie](https://dqa.jd.com/YinTao/guide/data/cookie.html)[] | 空 | 可接收cookie数组,用于初始化配置 |
| compatibility | bool| 空 | 兼容模式,默认采用YinTao浏览器,开启后将使用Chromium | | device | string | 空 | 模拟移动设备录制, 支持的字段参考setDevice | | hosts | Map | 空 | host信息 {"域名":"解析IP地址"}
|
数据格式:
json
{
"api": "live",
"config": {
"url": "https://jd.com",
"storage": {"id":123}
}
}
{
"api": "live",
"config": {
"url": "https://jd.com",
"storage": {"id":123}
}
}
结果示例
json
{
"script": "\nawait page.goto('https://www.baidu.com/');\n\n// Fill input[name=\"wd\"]\nawait dom.fill('input[name=\"wd\"]','2');\n\n// Click input[name=\"wd\"]\nawait dom.click('input[name=\"wd\"]');\n\n// Fill input[name=\"wd\"]\nawait dom.fill('input[name=\"wd\"]','2222');\n\n// Click text=百度一下\nawait dom.click('text=百度一下');",
"storage": {}
}
{
"script": "\nawait page.goto('https://www.baidu.com/');\n\n// Fill input[name=\"wd\"]\nawait dom.fill('input[name=\"wd\"]','2');\n\n// Click input[name=\"wd\"]\nawait dom.click('input[name=\"wd\"]');\n\n// Fill input[name=\"wd\"]\nawait dom.fill('input[name=\"wd\"]','2222');\n\n// Click text=百度一下\nawait dom.click('text=百度一下');",
"storage": {}
}
ping
数据格式:
json
{
"api": "ping"
}
{
"api": "ping"
}
退出
数据格式:
json
{
"api": "exit",
}
{
"api": "exit",
}