From 51562cef0e92e955b97f5e110a0421ad45d4a736 Mon Sep 17 00:00:00 2001 From: rr13k <45162461+rr13k@users.noreply.github.com> Date: Thu, 3 Aug 2023 02:17:26 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=2017d0d?= =?UTF-8?q?9eb1de6df22754d1f21b5b4e366c2210cbc=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 2 +- README.html | 6 +++--- assets/{README.md.43628745.js => README.md.e50ec8f2.js} | 2 +- ...EADME.md.43628745.lean.js => README.md.e50ec8f2.lean.js} | 2 +- ..._api_api.md.96eee10f.js => guide_api_api.md.decfc5b2.js} | 2 +- ...d.96eee10f.lean.js => guide_api_api.md.decfc5b2.lean.js} | 2 +- ...pi_func.md.0d220b19.js => guide_api_func.md.27f7dda4.js} | 2 +- ....0d220b19.lean.js => guide_api_func.md.27f7dda4.lean.js} | 2 +- ...pApi.md.e53718dc.js => guide_api_httpApi.md.57ee93f0.js} | 2 +- ...3718dc.lean.js => guide_api_httpApi.md.57ee93f0.lean.js} | 2 +- ...uct.md.8f5e1103.js => guide_api_instruct.md.40e22f8c.js} | 2 +- ...e1103.lean.js => guide_api_instruct.md.40e22f8c.lean.js} | 2 +- ....md.d0a0c2ad.js => guide_api_pasteConfig.md.626d22c8.js} | 2 +- ...ad.lean.js => guide_api_pasteConfig.md.626d22c8.lean.js} | 2 +- ..._wsApi.md.b829c86e.js => guide_api_wsApi.md.86c543fa.js} | 2 +- ...b829c86e.lean.js => guide_api_wsApi.md.86c543fa.lean.js} | 2 +- ...step.md.7122ee79.js => guide_course_step.md.f3b2a4da.js} | 2 +- ...22ee79.lean.js => guide_course_step.md.f3b2a4da.lean.js} | 2 +- ...ace.md.00cbfbf7.js => guide_course_trace.md.aeaf97ad.js} | 2 +- ...bfbf7.lean.js => guide_course_trace.md.aeaf97ad.lean.js} | 2 +- ...e_use.md.cbdce848.js => guide_course_use.md.5f12ffd6.js} | 2 +- ...bdce848.lean.js => guide_course_use.md.5f12ffd6.lean.js} | 2 +- ...okie.md.8556d521.js => guide_data_cookie.md.8ba04d1d.js} | 2 +- ...56d521.lean.js => guide_data_cookie.md.8ba04d1d.lean.js} | 2 +- ...e.md.967c1c76.js => guide_data_errorCode.md.7c1597ff.js} | 2 +- ...c76.lean.js => guide_data_errorCode.md.7c1597ff.lean.js} | 2 +- ...ode.md.4cab5f31.js => guide_data_keyCode.md.14038dc1.js} | 2 +- ...b5f31.lean.js => guide_data_keyCode.md.14038dc1.lean.js} | 2 +- ...de_ex_ex1.md.d385be3b.js => guide_ex_ex1.md.2b0cdea4.js} | 2 +- ...md.d385be3b.lean.js => guide_ex_ex1.md.2b0cdea4.lean.js} | 2 +- ...de_ex_ex2.md.084a4867.js => guide_ex_ex2.md.4e83a04c.js} | 2 +- ...md.084a4867.lean.js => guide_ex_ex2.md.4e83a04c.lean.js} | 2 +- ...ook.md.f20bd0b1.js => guide_exam_apiHook.md.33624e22.js} | 2 +- ...bd0b1.lean.js => guide_exam_apiHook.md.33624e22.lean.js} | 2 +- ...Opt.md.80283b48.js => guide_exam_baseOpt.md.ff34b73a.js} | 2 +- ...83b48.lean.js => guide_exam_baseOpt.md.ff34b73a.lean.js} | 2 +- ...bile.md.caef7d8e.js => guide_exam_mobile.md.9533b05a.js} | 2 +- ...ef7d8e.lean.js => guide_exam_mobile.md.9533b05a.lean.js} | 2 +- ....md.f05a7fcf.js => guide_exam_modifyDate.md.650b6d7b.js} | 2 +- ...cf.lean.js => guide_exam_modifyDate.md.650b6d7b.lean.js} | 2 +- ...lect.md.db8ddc39.js => guide_exam_select.md.1d8ecee7.js} | 2 +- ...8ddc39.lean.js => guide_exam_select.md.1d8ecee7.lean.js} | 2 +- ....a16e0d31.js => guide_introduce_download.md.10ead82a.js} | 2 +- ...lean.js => guide_introduce_download.md.10ead82a.lean.js} | 2 +- ...d.c0a9f5cf.js => guide_introduce_history.md.6d909cd6.js} | 2 +- ....lean.js => guide_introduce_history.md.6d909cd6.lean.js} | 2 +- ...d6e44e18.js => guide_introduce_introduce.md.f044e433.js} | 2 +- ...ean.js => guide_introduce_introduce.md.f044e433.lean.js} | 2 +- assets/{index.md.8b1c29b0.js => index.md.3ac5268a.js} | 2 +- ...{index.md.8b1c29b0.lean.js => index.md.3ac5268a.lean.js} | 2 +- guide/api/api.html | 6 +++--- guide/api/func.html | 6 +++--- guide/api/httpApi.html | 6 +++--- guide/api/instruct.html | 6 +++--- guide/api/pasteConfig.html | 6 +++--- guide/api/wsApi.html | 6 +++--- guide/course/step.html | 6 +++--- guide/course/trace.html | 6 +++--- guide/course/use.html | 6 +++--- guide/data/cookie.html | 6 +++--- guide/data/errorCode.html | 6 +++--- guide/data/keyCode.html | 6 +++--- guide/ex/ex1.html | 6 +++--- guide/ex/ex2.html | 6 +++--- guide/exam/apiHook.html | 6 +++--- guide/exam/baseOpt.html | 6 +++--- guide/exam/mobile.html | 6 +++--- guide/exam/modifyDate.html | 6 +++--- guide/exam/select.html | 6 +++--- guide/introduce/download.html | 6 +++--- guide/introduce/history.html | 6 +++--- guide/introduce/introduce.html | 6 +++--- hashmap.json | 2 +- index.html | 6 +++--- 74 files changed, 122 insertions(+), 122 deletions(-) rename assets/{README.md.43628745.js => README.md.e50ec8f2.js} (95%) rename assets/{README.md.43628745.lean.js => README.md.e50ec8f2.lean.js} (95%) rename assets/{guide_api_api.md.96eee10f.js => guide_api_api.md.decfc5b2.js} (94%) rename assets/{guide_api_api.md.96eee10f.lean.js => guide_api_api.md.decfc5b2.lean.js} (94%) rename assets/{guide_api_func.md.0d220b19.js => guide_api_func.md.27f7dda4.js} (90%) rename assets/{guide_api_func.md.0d220b19.lean.js => guide_api_func.md.27f7dda4.lean.js} (90%) rename assets/{guide_api_httpApi.md.e53718dc.js => guide_api_httpApi.md.57ee93f0.js} (99%) rename assets/{guide_api_httpApi.md.e53718dc.lean.js => guide_api_httpApi.md.57ee93f0.lean.js} (99%) rename assets/{guide_api_instruct.md.8f5e1103.js => guide_api_instruct.md.40e22f8c.js} (99%) rename assets/{guide_api_instruct.md.8f5e1103.lean.js => guide_api_instruct.md.40e22f8c.lean.js} (99%) rename assets/{guide_api_pasteConfig.md.d0a0c2ad.js => guide_api_pasteConfig.md.626d22c8.js} (99%) rename assets/{guide_api_pasteConfig.md.d0a0c2ad.lean.js => guide_api_pasteConfig.md.626d22c8.lean.js} (99%) rename assets/{guide_api_wsApi.md.b829c86e.js => guide_api_wsApi.md.86c543fa.js} (99%) rename assets/{guide_api_wsApi.md.b829c86e.lean.js => guide_api_wsApi.md.86c543fa.lean.js} (99%) rename assets/{guide_course_step.md.7122ee79.js => guide_course_step.md.f3b2a4da.js} (97%) rename assets/{guide_course_step.md.7122ee79.lean.js => guide_course_step.md.f3b2a4da.lean.js} (97%) rename assets/{guide_course_trace.md.00cbfbf7.js => guide_course_trace.md.aeaf97ad.js} (99%) rename assets/{guide_course_trace.md.00cbfbf7.lean.js => guide_course_trace.md.aeaf97ad.lean.js} (99%) rename assets/{guide_course_use.md.cbdce848.js => guide_course_use.md.5f12ffd6.js} (98%) rename assets/{guide_course_use.md.cbdce848.lean.js => guide_course_use.md.5f12ffd6.lean.js} (98%) rename assets/{guide_data_cookie.md.8556d521.js => guide_data_cookie.md.8ba04d1d.js} (92%) rename assets/{guide_data_cookie.md.8556d521.lean.js => guide_data_cookie.md.8ba04d1d.lean.js} (92%) rename assets/{guide_data_errorCode.md.967c1c76.js => guide_data_errorCode.md.7c1597ff.js} (91%) rename assets/{guide_data_errorCode.md.967c1c76.lean.js => guide_data_errorCode.md.7c1597ff.lean.js} (91%) rename assets/{guide_data_keyCode.md.4cab5f31.js => guide_data_keyCode.md.14038dc1.js} (99%) rename assets/{guide_data_keyCode.md.4cab5f31.lean.js => guide_data_keyCode.md.14038dc1.lean.js} (99%) rename assets/{guide_ex_ex1.md.d385be3b.js => guide_ex_ex1.md.2b0cdea4.js} (95%) rename assets/{guide_ex_ex1.md.d385be3b.lean.js => guide_ex_ex1.md.2b0cdea4.lean.js} (95%) rename assets/{guide_ex_ex2.md.084a4867.js => guide_ex_ex2.md.4e83a04c.js} (96%) rename assets/{guide_ex_ex2.md.084a4867.lean.js => guide_ex_ex2.md.4e83a04c.lean.js} (96%) rename assets/{guide_exam_apiHook.md.f20bd0b1.js => guide_exam_apiHook.md.33624e22.js} (99%) rename assets/{guide_exam_apiHook.md.f20bd0b1.lean.js => guide_exam_apiHook.md.33624e22.lean.js} (99%) rename assets/{guide_exam_baseOpt.md.80283b48.js => guide_exam_baseOpt.md.ff34b73a.js} (99%) rename assets/{guide_exam_baseOpt.md.80283b48.lean.js => guide_exam_baseOpt.md.ff34b73a.lean.js} (99%) rename assets/{guide_exam_mobile.md.caef7d8e.js => guide_exam_mobile.md.9533b05a.js} (98%) rename assets/{guide_exam_mobile.md.caef7d8e.lean.js => guide_exam_mobile.md.9533b05a.lean.js} (98%) rename assets/{guide_exam_modifyDate.md.f05a7fcf.js => guide_exam_modifyDate.md.650b6d7b.js} (99%) rename assets/{guide_exam_modifyDate.md.f05a7fcf.lean.js => guide_exam_modifyDate.md.650b6d7b.lean.js} (99%) rename assets/{guide_exam_select.md.db8ddc39.js => guide_exam_select.md.1d8ecee7.js} (99%) rename assets/{guide_exam_select.md.db8ddc39.lean.js => guide_exam_select.md.1d8ecee7.lean.js} (99%) rename assets/{guide_introduce_download.md.a16e0d31.js => guide_introduce_download.md.10ead82a.js} (98%) rename assets/{guide_introduce_download.md.a16e0d31.lean.js => guide_introduce_download.md.10ead82a.lean.js} (98%) rename assets/{guide_introduce_history.md.c0a9f5cf.js => guide_introduce_history.md.6d909cd6.js} (94%) rename assets/{guide_introduce_history.md.c0a9f5cf.lean.js => guide_introduce_history.md.6d909cd6.lean.js} (94%) rename assets/{guide_introduce_introduce.md.d6e44e18.js => guide_introduce_introduce.md.f044e433.js} (97%) rename assets/{guide_introduce_introduce.md.d6e44e18.lean.js => guide_introduce_introduce.md.f044e433.lean.js} (97%) rename assets/{index.md.8b1c29b0.js => index.md.3ac5268a.js} (81%) rename assets/{index.md.8b1c29b0.lean.js => index.md.3ac5268a.lean.js} (81%) diff --git a/404.html b/404.html index 8b922fe..48d2def 100644 --- a/404.html +++ b/404.html @@ -14,7 +14,7 @@
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- + \ No newline at end of file diff --git a/README.html b/README.html index 57826c5..22d7216 100644 --- a/README.html +++ b/README.html @@ -11,13 +11,13 @@ - + -
Skip to content
On this page

show

- +
Skip to content
On this page

show

+ \ No newline at end of file diff --git a/assets/README.md.43628745.js b/assets/README.md.e50ec8f2.js similarity index 95% rename from assets/README.md.43628745.js rename to assets/README.md.e50ec8f2.js index 4d42edc..fb9f15b 100644 --- a/assets/README.md.43628745.js +++ b/assets/README.md.e50ec8f2.js @@ -1 +1 @@ -import{_ as t,v as s,b as o,F as e,L as a}from"./chunks/framework.caa0fbaf.js";const i="/ok.mp4",w=JSON.parse('{"title":"show","description":"","frontmatter":{"home":true,"heroImage":"strawberry.ico","heroText":"YinTao","tagline":"WEB--UI高级智能自动化驱动引擎","actionText":"了解更多 →","actionLink":"/guide/introduce/introduce","features":[{"title":"智能录制","details":"YinTao 内置独创的智能录制模式,可有效提高录制准确率,提高case复用能力。"},{"title":"快速执行","details":"执行使用浏览器内部cdp完成, 执行速度selenium快3-5倍,并可通过js脚本完成精细化操作。"},{"title":"简单","details":"我们提供最简单的脚本维护模式,流式case运行,丰富的指令,让用户以最低的成本完成复杂的测试。"}],"footer":"MIT Licensed | Copyright © 2020 京东科技-数字营销营销部-测试技术组"},"headers":[],"relativePath":"README.md","filePath":"README.md","lastUpdated":1690977245000}'),r={name:"README.md"},n=e("h1",{id:"show",tabindex:"-1"},[a("show "),e("a",{class:"header-anchor",href:"#show","aria-label":'Permalink to "show"'},"​")],-1),c=e("p",{style:{"text-align":"center"}},[e("video",{src:i,controls:"controls",loop:"loop",width:"1000"})],-1),d=[n,c];function l(h,_,p,m,f,u){return s(),o("div",null,d)}const x=t(r,[["render",l]]);export{w as __pageData,x as default}; +import{_ as t,v as s,b as o,F as e,L as a}from"./chunks/framework.caa0fbaf.js";const i="/ok.mp4",w=JSON.parse('{"title":"show","description":"","frontmatter":{"home":true,"heroImage":"strawberry.ico","heroText":"YinTao","tagline":"WEB--UI高级智能自动化驱动引擎","actionText":"了解更多 →","actionLink":"/guide/introduce/introduce","features":[{"title":"智能录制","details":"YinTao 内置独创的智能录制模式,可有效提高录制准确率,提高case复用能力。"},{"title":"快速执行","details":"执行使用浏览器内部cdp完成, 执行速度selenium快3-5倍,并可通过js脚本完成精细化操作。"},{"title":"简单","details":"我们提供最简单的脚本维护模式,流式case运行,丰富的指令,让用户以最低的成本完成复杂的测试。"}],"footer":"MIT Licensed | Copyright © 2020 京东科技-数字营销营销部-测试技术组"},"headers":[],"relativePath":"README.md","filePath":"README.md","lastUpdated":1691029002000}'),r={name:"README.md"},n=e("h1",{id:"show",tabindex:"-1"},[a("show "),e("a",{class:"header-anchor",href:"#show","aria-label":'Permalink to "show"'},"​")],-1),c=e("p",{style:{"text-align":"center"}},[e("video",{src:i,controls:"controls",loop:"loop",width:"1000"})],-1),d=[n,c];function l(h,_,p,m,f,u){return s(),o("div",null,d)}const x=t(r,[["render",l]]);export{w as __pageData,x as default}; diff --git a/assets/README.md.43628745.lean.js b/assets/README.md.e50ec8f2.lean.js similarity index 95% rename from assets/README.md.43628745.lean.js rename to assets/README.md.e50ec8f2.lean.js index 4d42edc..fb9f15b 100644 --- a/assets/README.md.43628745.lean.js +++ b/assets/README.md.e50ec8f2.lean.js @@ -1 +1 @@ -import{_ as t,v as s,b as o,F as e,L as a}from"./chunks/framework.caa0fbaf.js";const i="/ok.mp4",w=JSON.parse('{"title":"show","description":"","frontmatter":{"home":true,"heroImage":"strawberry.ico","heroText":"YinTao","tagline":"WEB--UI高级智能自动化驱动引擎","actionText":"了解更多 →","actionLink":"/guide/introduce/introduce","features":[{"title":"智能录制","details":"YinTao 内置独创的智能录制模式,可有效提高录制准确率,提高case复用能力。"},{"title":"快速执行","details":"执行使用浏览器内部cdp完成, 执行速度selenium快3-5倍,并可通过js脚本完成精细化操作。"},{"title":"简单","details":"我们提供最简单的脚本维护模式,流式case运行,丰富的指令,让用户以最低的成本完成复杂的测试。"}],"footer":"MIT Licensed | Copyright © 2020 京东科技-数字营销营销部-测试技术组"},"headers":[],"relativePath":"README.md","filePath":"README.md","lastUpdated":1690977245000}'),r={name:"README.md"},n=e("h1",{id:"show",tabindex:"-1"},[a("show "),e("a",{class:"header-anchor",href:"#show","aria-label":'Permalink to "show"'},"​")],-1),c=e("p",{style:{"text-align":"center"}},[e("video",{src:i,controls:"controls",loop:"loop",width:"1000"})],-1),d=[n,c];function l(h,_,p,m,f,u){return s(),o("div",null,d)}const x=t(r,[["render",l]]);export{w as __pageData,x as default}; +import{_ as t,v as s,b as o,F as e,L as a}from"./chunks/framework.caa0fbaf.js";const i="/ok.mp4",w=JSON.parse('{"title":"show","description":"","frontmatter":{"home":true,"heroImage":"strawberry.ico","heroText":"YinTao","tagline":"WEB--UI高级智能自动化驱动引擎","actionText":"了解更多 →","actionLink":"/guide/introduce/introduce","features":[{"title":"智能录制","details":"YinTao 内置独创的智能录制模式,可有效提高录制准确率,提高case复用能力。"},{"title":"快速执行","details":"执行使用浏览器内部cdp完成, 执行速度selenium快3-5倍,并可通过js脚本完成精细化操作。"},{"title":"简单","details":"我们提供最简单的脚本维护模式,流式case运行,丰富的指令,让用户以最低的成本完成复杂的测试。"}],"footer":"MIT Licensed | Copyright © 2020 京东科技-数字营销营销部-测试技术组"},"headers":[],"relativePath":"README.md","filePath":"README.md","lastUpdated":1691029002000}'),r={name:"README.md"},n=e("h1",{id:"show",tabindex:"-1"},[a("show "),e("a",{class:"header-anchor",href:"#show","aria-label":'Permalink to "show"'},"​")],-1),c=e("p",{style:{"text-align":"center"}},[e("video",{src:i,controls:"controls",loop:"loop",width:"1000"})],-1),d=[n,c];function l(h,_,p,m,f,u){return s(),o("div",null,d)}const x=t(r,[["render",l]]);export{w as __pageData,x as default}; diff --git a/assets/guide_api_api.md.96eee10f.js b/assets/guide_api_api.md.decfc5b2.js similarity index 94% rename from assets/guide_api_api.md.96eee10f.js rename to assets/guide_api_api.md.decfc5b2.js index 8c1b8c8..dc77b45 100644 --- a/assets/guide_api_api.md.96eee10f.js +++ b/assets/guide_api_api.md.decfc5b2.js @@ -1 +1 @@ -import{_ as t,v as s,b as i,F as a,L as e}from"./chunks/framework.caa0fbaf.js";const b=JSON.parse('{"title":"OPEN-API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/api.md","filePath":"guide/api/api.md","lastUpdated":1690977245000}'),o={name:"guide/api/api.md"},n=a("h1",{id:"open-api",tabindex:"-1"},[e("OPEN-API "),a("a",{class:"header-anchor",href:"#open-api","aria-label":'Permalink to "OPEN-API"'},"​")],-1),d=a("h2",{id:"描述",tabindex:"-1"},[e("描述 "),a("a",{class:"header-anchor",href:"#描述","aria-label":'Permalink to "描述"'},"​")],-1),r=a("p",null,[e("为满足各个平台用户,以及三方用户的使用需求。"),a("code",null,"chery"),e("提供了强大的开放api能力。以满足用户在不修改源码的情况下,自主完成功能接入使用。 并同时支持"),a("code",null,"http"),e(","),a("code",null,"websocket"),e("两种接入协议,用户可以自行选择接入模式。更好的完成功能接入。")],-1),p=[n,d,r];function c(l,_,h,u,f,m){return s(),i("div",null,p)}const x=t(o,[["render",c]]);export{b as __pageData,x as default}; +import{_ as t,v as s,b as i,F as a,L as e}from"./chunks/framework.caa0fbaf.js";const b=JSON.parse('{"title":"OPEN-API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/api.md","filePath":"guide/api/api.md","lastUpdated":1691029002000}'),o={name:"guide/api/api.md"},n=a("h1",{id:"open-api",tabindex:"-1"},[e("OPEN-API "),a("a",{class:"header-anchor",href:"#open-api","aria-label":'Permalink to "OPEN-API"'},"​")],-1),d=a("h2",{id:"描述",tabindex:"-1"},[e("描述 "),a("a",{class:"header-anchor",href:"#描述","aria-label":'Permalink to "描述"'},"​")],-1),r=a("p",null,[e("为满足各个平台用户,以及三方用户的使用需求。"),a("code",null,"chery"),e("提供了强大的开放api能力。以满足用户在不修改源码的情况下,自主完成功能接入使用。 并同时支持"),a("code",null,"http"),e(","),a("code",null,"websocket"),e("两种接入协议,用户可以自行选择接入模式。更好的完成功能接入。")],-1),p=[n,d,r];function c(l,_,h,u,f,m){return s(),i("div",null,p)}const x=t(o,[["render",c]]);export{b as __pageData,x as default}; diff --git a/assets/guide_api_api.md.96eee10f.lean.js b/assets/guide_api_api.md.decfc5b2.lean.js similarity index 94% rename from assets/guide_api_api.md.96eee10f.lean.js rename to assets/guide_api_api.md.decfc5b2.lean.js index 8c1b8c8..dc77b45 100644 --- a/assets/guide_api_api.md.96eee10f.lean.js +++ b/assets/guide_api_api.md.decfc5b2.lean.js @@ -1 +1 @@ -import{_ as t,v as s,b as i,F as a,L as e}from"./chunks/framework.caa0fbaf.js";const b=JSON.parse('{"title":"OPEN-API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/api.md","filePath":"guide/api/api.md","lastUpdated":1690977245000}'),o={name:"guide/api/api.md"},n=a("h1",{id:"open-api",tabindex:"-1"},[e("OPEN-API "),a("a",{class:"header-anchor",href:"#open-api","aria-label":'Permalink to "OPEN-API"'},"​")],-1),d=a("h2",{id:"描述",tabindex:"-1"},[e("描述 "),a("a",{class:"header-anchor",href:"#描述","aria-label":'Permalink to "描述"'},"​")],-1),r=a("p",null,[e("为满足各个平台用户,以及三方用户的使用需求。"),a("code",null,"chery"),e("提供了强大的开放api能力。以满足用户在不修改源码的情况下,自主完成功能接入使用。 并同时支持"),a("code",null,"http"),e(","),a("code",null,"websocket"),e("两种接入协议,用户可以自行选择接入模式。更好的完成功能接入。")],-1),p=[n,d,r];function c(l,_,h,u,f,m){return s(),i("div",null,p)}const x=t(o,[["render",c]]);export{b as __pageData,x as default}; +import{_ as t,v as s,b as i,F as a,L as e}from"./chunks/framework.caa0fbaf.js";const b=JSON.parse('{"title":"OPEN-API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/api.md","filePath":"guide/api/api.md","lastUpdated":1691029002000}'),o={name:"guide/api/api.md"},n=a("h1",{id:"open-api",tabindex:"-1"},[e("OPEN-API "),a("a",{class:"header-anchor",href:"#open-api","aria-label":'Permalink to "OPEN-API"'},"​")],-1),d=a("h2",{id:"描述",tabindex:"-1"},[e("描述 "),a("a",{class:"header-anchor",href:"#描述","aria-label":'Permalink to "描述"'},"​")],-1),r=a("p",null,[e("为满足各个平台用户,以及三方用户的使用需求。"),a("code",null,"chery"),e("提供了强大的开放api能力。以满足用户在不修改源码的情况下,自主完成功能接入使用。 并同时支持"),a("code",null,"http"),e(","),a("code",null,"websocket"),e("两种接入协议,用户可以自行选择接入模式。更好的完成功能接入。")],-1),p=[n,d,r];function c(l,_,h,u,f,m){return s(),i("div",null,p)}const x=t(o,[["render",c]]);export{b as __pageData,x as default}; diff --git a/assets/guide_api_func.md.0d220b19.js b/assets/guide_api_func.md.27f7dda4.js similarity index 90% rename from assets/guide_api_func.md.0d220b19.js rename to assets/guide_api_func.md.27f7dda4.js index d3b97b0..4b56cf8 100644 --- a/assets/guide_api_func.md.0d220b19.js +++ b/assets/guide_api_func.md.27f7dda4.js @@ -1 +1 @@ -import{_ as s,v as t,b as a,F as e,L as n}from"./chunks/framework.caa0fbaf.js";const i="/assets/ex2.5d3916de.png",x=JSON.parse('{"title":"开发架构","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/func.md","filePath":"guide/api/func.md","lastUpdated":1690977245000}'),o={name:"guide/api/func.md"},r=e("h1",{id:"开发架构",tabindex:"-1"},[n("开发架构 "),e("a",{class:"header-anchor",href:"#开发架构","aria-label":'Permalink to "开发架构"'},"​")],-1),d=e("img",{src:i,alt:"用例目录",style:{zoom:"100%"}},null,-1),c=[r,d];function _(p,l,f,u,m,h){return t(),a("div",null,c)}const b=s(o,[["render",_]]);export{x as __pageData,b as default}; +import{_ as s,v as t,b as a,F as e,L as n}from"./chunks/framework.caa0fbaf.js";const i="/assets/ex2.5d3916de.png",x=JSON.parse('{"title":"开发架构","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/func.md","filePath":"guide/api/func.md","lastUpdated":1691029002000}'),o={name:"guide/api/func.md"},r=e("h1",{id:"开发架构",tabindex:"-1"},[n("开发架构 "),e("a",{class:"header-anchor",href:"#开发架构","aria-label":'Permalink to "开发架构"'},"​")],-1),d=e("img",{src:i,alt:"用例目录",style:{zoom:"100%"}},null,-1),c=[r,d];function _(p,l,f,u,m,h){return t(),a("div",null,c)}const b=s(o,[["render",_]]);export{x as __pageData,b as default}; diff --git a/assets/guide_api_func.md.0d220b19.lean.js b/assets/guide_api_func.md.27f7dda4.lean.js similarity index 90% rename from assets/guide_api_func.md.0d220b19.lean.js rename to assets/guide_api_func.md.27f7dda4.lean.js index d3b97b0..4b56cf8 100644 --- a/assets/guide_api_func.md.0d220b19.lean.js +++ b/assets/guide_api_func.md.27f7dda4.lean.js @@ -1 +1 @@ -import{_ as s,v as t,b as a,F as e,L as n}from"./chunks/framework.caa0fbaf.js";const i="/assets/ex2.5d3916de.png",x=JSON.parse('{"title":"开发架构","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/func.md","filePath":"guide/api/func.md","lastUpdated":1690977245000}'),o={name:"guide/api/func.md"},r=e("h1",{id:"开发架构",tabindex:"-1"},[n("开发架构 "),e("a",{class:"header-anchor",href:"#开发架构","aria-label":'Permalink to "开发架构"'},"​")],-1),d=e("img",{src:i,alt:"用例目录",style:{zoom:"100%"}},null,-1),c=[r,d];function _(p,l,f,u,m,h){return t(),a("div",null,c)}const b=s(o,[["render",_]]);export{x as __pageData,b as default}; +import{_ as s,v as t,b as a,F as e,L as n}from"./chunks/framework.caa0fbaf.js";const i="/assets/ex2.5d3916de.png",x=JSON.parse('{"title":"开发架构","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/func.md","filePath":"guide/api/func.md","lastUpdated":1691029002000}'),o={name:"guide/api/func.md"},r=e("h1",{id:"开发架构",tabindex:"-1"},[n("开发架构 "),e("a",{class:"header-anchor",href:"#开发架构","aria-label":'Permalink to "开发架构"'},"​")],-1),d=e("img",{src:i,alt:"用例目录",style:{zoom:"100%"}},null,-1),c=[r,d];function _(p,l,f,u,m,h){return t(),a("div",null,c)}const b=s(o,[["render",_]]);export{x as __pageData,b as default}; diff --git a/assets/guide_api_httpApi.md.e53718dc.js b/assets/guide_api_httpApi.md.57ee93f0.js similarity index 99% rename from assets/guide_api_httpApi.md.e53718dc.js rename to assets/guide_api_httpApi.md.57ee93f0.js index 34f98a7..918aaef 100644 --- a/assets/guide_api_httpApi.md.e53718dc.js +++ b/assets/guide_api_httpApi.md.57ee93f0.js @@ -1,4 +1,4 @@ -import{_ as s,v as t,b as a,R as n}from"./chunks/framework.caa0fbaf.js";const h=JSON.parse('{"title":"http接口服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/httpApi.md","filePath":"guide/api/httpApi.md","lastUpdated":1690977245000}'),o={name:"guide/api/httpApi.md"},p=n(`

http接口服务

概要

YinTao 启动后默认占用本机8777端口,对外提供http服务。

执行

路径: /run

请求方式: POST

说明: 运行脚本时调用,运行报告随请求返回, 当填写remoteReport时,会立即返回空,执行结果会通过异步返回

参数:

名称类型默认值说明
scriptstring执行的脚本
storageany自定义参数仓库
headlessbooleanfasle无头模式,默认为显示界面运行,true开启无头运行
browserstring'chrome'执行使用的浏览器支持 chromefirefoxwebkit
hostsMaphost信息 {"域名":"解析IP地址"}
cookiesCookie[]可接收cookie数组,用于初始化配置
remoteReportobject远程执行需要上报的地址

remoteReport 类型:object:

名称类型默认值说明
resultstring远程上传结果地址
logstring远程上传日志地址
imagestring远程上传图片地址
tracestring远程上传追踪地址,支持本地路径以及http地址。问题追踪

请求示例:

js
request
+import{_ as s,v as t,b as a,R as n}from"./chunks/framework.caa0fbaf.js";const h=JSON.parse('{"title":"http接口服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/httpApi.md","filePath":"guide/api/httpApi.md","lastUpdated":1691029002000}'),o={name:"guide/api/httpApi.md"},p=n(`

http接口服务

概要

YinTao 启动后默认占用本机8777端口,对外提供http服务。

执行

路径: /run

请求方式: POST

说明: 运行脚本时调用,运行报告随请求返回, 当填写remoteReport时,会立即返回空,执行结果会通过异步返回

参数:

名称类型默认值说明
scriptstring执行的脚本
storageany自定义参数仓库
headlessbooleanfasle无头模式,默认为显示界面运行,true开启无头运行
browserstring'chrome'执行使用的浏览器支持 chromefirefoxwebkit
hostsMaphost信息 {"域名":"解析IP地址"}
cookiesCookie[]可接收cookie数组,用于初始化配置
remoteReportobject远程执行需要上报的地址

remoteReport 类型:object:

名称类型默认值说明
resultstring远程上传结果地址
logstring远程上传日志地址
imagestring远程上传图片地址
tracestring远程上传追踪地址,支持本地路径以及http地址。问题追踪

请求示例:

js
request
     .post(
       "http://localhost:8777/run",
       {
diff --git a/assets/guide_api_httpApi.md.e53718dc.lean.js b/assets/guide_api_httpApi.md.57ee93f0.lean.js
similarity index 99%
rename from assets/guide_api_httpApi.md.e53718dc.lean.js
rename to assets/guide_api_httpApi.md.57ee93f0.lean.js
index 34f98a7..918aaef 100644
--- a/assets/guide_api_httpApi.md.e53718dc.lean.js
+++ b/assets/guide_api_httpApi.md.57ee93f0.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,v as t,b as a,R as n}from"./chunks/framework.caa0fbaf.js";const h=JSON.parse('{"title":"http接口服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/httpApi.md","filePath":"guide/api/httpApi.md","lastUpdated":1690977245000}'),o={name:"guide/api/httpApi.md"},p=n(`

http接口服务

概要

YinTao 启动后默认占用本机8777端口,对外提供http服务。

执行

路径: /run

请求方式: POST

说明: 运行脚本时调用,运行报告随请求返回, 当填写remoteReport时,会立即返回空,执行结果会通过异步返回

参数:

名称类型默认值说明
scriptstring执行的脚本
storageany自定义参数仓库
headlessbooleanfasle无头模式,默认为显示界面运行,true开启无头运行
browserstring'chrome'执行使用的浏览器支持 chromefirefoxwebkit
hostsMaphost信息 {"域名":"解析IP地址"}
cookiesCookie[]可接收cookie数组,用于初始化配置
remoteReportobject远程执行需要上报的地址

remoteReport 类型:object:

名称类型默认值说明
resultstring远程上传结果地址
logstring远程上传日志地址
imagestring远程上传图片地址
tracestring远程上传追踪地址,支持本地路径以及http地址。问题追踪

请求示例:

js
request
+import{_ as s,v as t,b as a,R as n}from"./chunks/framework.caa0fbaf.js";const h=JSON.parse('{"title":"http接口服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/httpApi.md","filePath":"guide/api/httpApi.md","lastUpdated":1691029002000}'),o={name:"guide/api/httpApi.md"},p=n(`

http接口服务

概要

YinTao 启动后默认占用本机8777端口,对外提供http服务。

执行

路径: /run

请求方式: POST

说明: 运行脚本时调用,运行报告随请求返回, 当填写remoteReport时,会立即返回空,执行结果会通过异步返回

参数:

名称类型默认值说明
scriptstring执行的脚本
storageany自定义参数仓库
headlessbooleanfasle无头模式,默认为显示界面运行,true开启无头运行
browserstring'chrome'执行使用的浏览器支持 chromefirefoxwebkit
hostsMaphost信息 {"域名":"解析IP地址"}
cookiesCookie[]可接收cookie数组,用于初始化配置
remoteReportobject远程执行需要上报的地址

remoteReport 类型:object:

名称类型默认值说明
resultstring远程上传结果地址
logstring远程上传日志地址
imagestring远程上传图片地址
tracestring远程上传追踪地址,支持本地路径以及http地址。问题追踪

请求示例:

js
request
     .post(
       "http://localhost:8777/run",
       {
diff --git a/assets/guide_api_instruct.md.8f5e1103.js b/assets/guide_api_instruct.md.40e22f8c.js
similarity index 99%
rename from assets/guide_api_instruct.md.8f5e1103.js
rename to assets/guide_api_instruct.md.40e22f8c.js
index ff887c5..0282cda 100644
--- a/assets/guide_api_instruct.md.8f5e1103.js
+++ b/assets/guide_api_instruct.md.40e22f8c.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as o,R as n}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"指令","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/instruct.md","filePath":"guide/api/instruct.md","lastUpdated":1690977245000}'),l={name:"guide/api/instruct.md"},e=n(`

指令

说明

YinTao 执行时主要通过解析指令代码执行, 这些内部指令在运行时以被预注册的js函数所替代,这意味着未知的指令无法得到正确的解析。

同时我们可以使用原生js进行逻辑编写。部分指令生效会有一些限制,这取决于不同页面之间的上下文差异,YinTao对这些工作进行了简化。

执行时只存在一套上下文,即当前控制的页面。多页面直接操作必须进行手动切换(不建议使用多页面)。

注意: execJavaScript执行环境仅为当前控制的浏览器页面,而原生的js将在node侧执行。

dom

dom.exist(sign): boolean

判断传入的元素值是否存在,存在返回true,不存在返回false

js
const result =  await dom.exist('#id')
+import{_ as s,v as a,b as o,R as n}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"指令","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/instruct.md","filePath":"guide/api/instruct.md","lastUpdated":1691029002000}'),l={name:"guide/api/instruct.md"},e=n(`

指令

说明

YinTao 执行时主要通过解析指令代码执行, 这些内部指令在运行时以被预注册的js函数所替代,这意味着未知的指令无法得到正确的解析。

同时我们可以使用原生js进行逻辑编写。部分指令生效会有一些限制,这取决于不同页面之间的上下文差异,YinTao对这些工作进行了简化。

执行时只存在一套上下文,即当前控制的页面。多页面直接操作必须进行手动切换(不建议使用多页面)。

注意: execJavaScript执行环境仅为当前控制的浏览器页面,而原生的js将在node侧执行。

dom

dom.exist(sign): boolean

判断传入的元素值是否存在,存在返回true,不存在返回false

js
const result =  await dom.exist('#id')
 console.log('result:', result)
 // >  'result:' true

dom.dragTo(sign1,sign2)

拖拽元素,控制鼠标拖拽从元素1拖动至元素2, 入需更精细化控制可使用mouse.dragTo

js
await dom.dragTo('//*[@id="anchor-0"]/div/div[3]/div/div/div[2]','//*[@id="anchor-0"]/div/div[3]/div/div/div[1]')

dom.wait(sign,ms)

等待元素出现,默认等待时间为5s,如果5s内还未出现则抛出错误,元素出现后执行后续命令。

sign: 元素标记,用于查找定位元素。

ms: 单位毫秒,设置最长等待时间

js
await dom.wait('#id')

dom.viewTo(sign)

通过滚动条让指定元素在屏幕中居中显示.

sign: 元素标记,用于查找定位元素。

js
await dom.viewTo('#id')

dom.dispatchEvent(sign, eventName)

sign: 元素标记,用于查找定位元素。 eventName: 元素事件名称

js
await dom.dispatchEvent('#id','click')  // 触发元素事件

dom.click(sign, option)

对目标定位元素进行点击操作

options:

  • button?: "left"|"right"|"middle" 默认left;

  • clickCount?: number 点击次数默认为1;

  • delay?: number 点击延迟;

  • force?: boolean 是否强制点击,强制点击不校验元素操作状态;

  • modifiers?: Array<"Alt"|"Control"|"Meta"|"Shift">;

  • noWaitAfter?: boolean;

  • position?: { 相对于元素填充框左上角使用的点。如果未指定,则使用元素的某个可见点

    x: number;

    y: number;

};

  • strict?: boolean; 调用需要选择器解析为单个元素。如果给定的选择器解析为多个元素,则调用将引发异常

  • timeout?: number; 命令最大执行超时时间

  • trial?: boolean; 仅进行元素操作校验,但不进行点击

    js
    await dom.click("#id")
     await dom.click("#id",{timeout:3000}) // 增加点击命令超时

dom.fill(sign, value)

对元素进行输入操作,功能和set类型。

js
await dom.fill("#id",'hello word!')

dom.screenshot(sign,option)

对指定元素进行截图

options:

  • fullPage? boolean 如果元素内有滚动条,可以设置此参数截取完整元素
  • mask? sign[] 在截图时可以配置忽略页面元素
  • path? string 截图图像存储路径
  • quality? number 图像的质量,介于 0-100 之间。不适用于png图像。
  • timeout? number 以毫秒为单位的最长时间,默认为 30 秒,传递0以禁用超时
js
await dom.screenshot('#main-chart',{path:'ack.jpg',fullPage:true})

dom.set(value,sign) -- 建议使用dom.fill

优先使用dom.fill, 如果事件未完整触发可使用改指令替代 对当前操作的元素执行赋值操作, 元素必须是可赋值的类型, 如input类型。

js
await dom.set('hello word!',"#id")

dom.upload(id,filePath)

上传文件, 控制input file 自动上传文件,需要传递input框的唯一id, 以及本地文件路径。

js
await dom.upload('#YinTao','https://storage.360buyimg.com/assert/zi.jpg') // 上传远程文件
diff --git a/assets/guide_api_instruct.md.8f5e1103.lean.js b/assets/guide_api_instruct.md.40e22f8c.lean.js
similarity index 99%
rename from assets/guide_api_instruct.md.8f5e1103.lean.js
rename to assets/guide_api_instruct.md.40e22f8c.lean.js
index ff887c5..0282cda 100644
--- a/assets/guide_api_instruct.md.8f5e1103.lean.js
+++ b/assets/guide_api_instruct.md.40e22f8c.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as o,R as n}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"指令","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/instruct.md","filePath":"guide/api/instruct.md","lastUpdated":1690977245000}'),l={name:"guide/api/instruct.md"},e=n(`

指令

说明

YinTao 执行时主要通过解析指令代码执行, 这些内部指令在运行时以被预注册的js函数所替代,这意味着未知的指令无法得到正确的解析。

同时我们可以使用原生js进行逻辑编写。部分指令生效会有一些限制,这取决于不同页面之间的上下文差异,YinTao对这些工作进行了简化。

执行时只存在一套上下文,即当前控制的页面。多页面直接操作必须进行手动切换(不建议使用多页面)。

注意: execJavaScript执行环境仅为当前控制的浏览器页面,而原生的js将在node侧执行。

dom

dom.exist(sign): boolean

判断传入的元素值是否存在,存在返回true,不存在返回false

js
const result =  await dom.exist('#id')
+import{_ as s,v as a,b as o,R as n}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"指令","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/instruct.md","filePath":"guide/api/instruct.md","lastUpdated":1691029002000}'),l={name:"guide/api/instruct.md"},e=n(`

指令

说明

YinTao 执行时主要通过解析指令代码执行, 这些内部指令在运行时以被预注册的js函数所替代,这意味着未知的指令无法得到正确的解析。

同时我们可以使用原生js进行逻辑编写。部分指令生效会有一些限制,这取决于不同页面之间的上下文差异,YinTao对这些工作进行了简化。

执行时只存在一套上下文,即当前控制的页面。多页面直接操作必须进行手动切换(不建议使用多页面)。

注意: execJavaScript执行环境仅为当前控制的浏览器页面,而原生的js将在node侧执行。

dom

dom.exist(sign): boolean

判断传入的元素值是否存在,存在返回true,不存在返回false

js
const result =  await dom.exist('#id')
 console.log('result:', result)
 // >  'result:' true

dom.dragTo(sign1,sign2)

拖拽元素,控制鼠标拖拽从元素1拖动至元素2, 入需更精细化控制可使用mouse.dragTo

js
await dom.dragTo('//*[@id="anchor-0"]/div/div[3]/div/div/div[2]','//*[@id="anchor-0"]/div/div[3]/div/div/div[1]')

dom.wait(sign,ms)

等待元素出现,默认等待时间为5s,如果5s内还未出现则抛出错误,元素出现后执行后续命令。

sign: 元素标记,用于查找定位元素。

ms: 单位毫秒,设置最长等待时间

js
await dom.wait('#id')

dom.viewTo(sign)

通过滚动条让指定元素在屏幕中居中显示.

sign: 元素标记,用于查找定位元素。

js
await dom.viewTo('#id')

dom.dispatchEvent(sign, eventName)

sign: 元素标记,用于查找定位元素。 eventName: 元素事件名称

js
await dom.dispatchEvent('#id','click')  // 触发元素事件

dom.click(sign, option)

对目标定位元素进行点击操作

options:

  • button?: "left"|"right"|"middle" 默认left;

  • clickCount?: number 点击次数默认为1;

  • delay?: number 点击延迟;

  • force?: boolean 是否强制点击,强制点击不校验元素操作状态;

  • modifiers?: Array<"Alt"|"Control"|"Meta"|"Shift">;

  • noWaitAfter?: boolean;

  • position?: { 相对于元素填充框左上角使用的点。如果未指定,则使用元素的某个可见点

    x: number;

    y: number;

};

  • strict?: boolean; 调用需要选择器解析为单个元素。如果给定的选择器解析为多个元素,则调用将引发异常

  • timeout?: number; 命令最大执行超时时间

  • trial?: boolean; 仅进行元素操作校验,但不进行点击

    js
    await dom.click("#id")
     await dom.click("#id",{timeout:3000}) // 增加点击命令超时

dom.fill(sign, value)

对元素进行输入操作,功能和set类型。

js
await dom.fill("#id",'hello word!')

dom.screenshot(sign,option)

对指定元素进行截图

options:

  • fullPage? boolean 如果元素内有滚动条,可以设置此参数截取完整元素
  • mask? sign[] 在截图时可以配置忽略页面元素
  • path? string 截图图像存储路径
  • quality? number 图像的质量,介于 0-100 之间。不适用于png图像。
  • timeout? number 以毫秒为单位的最长时间,默认为 30 秒,传递0以禁用超时
js
await dom.screenshot('#main-chart',{path:'ack.jpg',fullPage:true})

dom.set(value,sign) -- 建议使用dom.fill

优先使用dom.fill, 如果事件未完整触发可使用改指令替代 对当前操作的元素执行赋值操作, 元素必须是可赋值的类型, 如input类型。

js
await dom.set('hello word!',"#id")

dom.upload(id,filePath)

上传文件, 控制input file 自动上传文件,需要传递input框的唯一id, 以及本地文件路径。

js
await dom.upload('#YinTao','https://storage.360buyimg.com/assert/zi.jpg') // 上传远程文件
diff --git a/assets/guide_api_pasteConfig.md.d0a0c2ad.js b/assets/guide_api_pasteConfig.md.626d22c8.js
similarity index 99%
rename from assets/guide_api_pasteConfig.md.d0a0c2ad.js
rename to assets/guide_api_pasteConfig.md.626d22c8.js
index 9b98dce..a7f7c0b 100644
--- a/assets/guide_api_pasteConfig.md.d0a0c2ad.js
+++ b/assets/guide_api_pasteConfig.md.626d22c8.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as o}from"./chunks/framework.caa0fbaf.js";const h=JSON.parse('{"title":"粘贴板配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/pasteConfig.md","filePath":"guide/api/pasteConfig.md","lastUpdated":1690977245000}'),l={name:"guide/api/pasteConfig.md"},p=o(`

粘贴板配置

介绍

YinTao 作为底层引擎,经常会在多个平台间使用,为了让用户能够更好的使用YinTao功能,以及兼容一些平台实现的差异。 我们提供了通用的粘贴板配置模式。

原理

在执行中或录制中,平台将传递一系列参数来控制具体执行的行为,现在我们允许用户去覆盖或扩充它 (注: 仅针对本地有效)

我们读取用户的粘贴板内容,转化为配置文件,并覆盖原始配置(仅针对修改项)。

让用户可以更加灵活的时候扩展功能。

示例

使用方式: 复制下列代码至粘贴板

自定义录制打开的浏览器

json
{
+import{_ as s,v as a,b as n,R as o}from"./chunks/framework.caa0fbaf.js";const h=JSON.parse('{"title":"粘贴板配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/pasteConfig.md","filePath":"guide/api/pasteConfig.md","lastUpdated":1691029002000}'),l={name:"guide/api/pasteConfig.md"},p=o(`

粘贴板配置

介绍

YinTao 作为底层引擎,经常会在多个平台间使用,为了让用户能够更好的使用YinTao功能,以及兼容一些平台实现的差异。 我们提供了通用的粘贴板配置模式。

原理

在执行中或录制中,平台将传递一系列参数来控制具体执行的行为,现在我们允许用户去覆盖或扩充它 (注: 仅针对本地有效)

我们读取用户的粘贴板内容,转化为配置文件,并覆盖原始配置(仅针对修改项)。

让用户可以更加灵活的时候扩展功能。

示例

使用方式: 复制下列代码至粘贴板

自定义录制打开的浏览器

json
{
     "url": "https://jd.com"
 }

模拟录制h5页面

json
{
     "url": "https://jd.com",
diff --git a/assets/guide_api_pasteConfig.md.d0a0c2ad.lean.js b/assets/guide_api_pasteConfig.md.626d22c8.lean.js
similarity index 99%
rename from assets/guide_api_pasteConfig.md.d0a0c2ad.lean.js
rename to assets/guide_api_pasteConfig.md.626d22c8.lean.js
index 9b98dce..a7f7c0b 100644
--- a/assets/guide_api_pasteConfig.md.d0a0c2ad.lean.js
+++ b/assets/guide_api_pasteConfig.md.626d22c8.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as o}from"./chunks/framework.caa0fbaf.js";const h=JSON.parse('{"title":"粘贴板配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/pasteConfig.md","filePath":"guide/api/pasteConfig.md","lastUpdated":1690977245000}'),l={name:"guide/api/pasteConfig.md"},p=o(`

粘贴板配置

介绍

YinTao 作为底层引擎,经常会在多个平台间使用,为了让用户能够更好的使用YinTao功能,以及兼容一些平台实现的差异。 我们提供了通用的粘贴板配置模式。

原理

在执行中或录制中,平台将传递一系列参数来控制具体执行的行为,现在我们允许用户去覆盖或扩充它 (注: 仅针对本地有效)

我们读取用户的粘贴板内容,转化为配置文件,并覆盖原始配置(仅针对修改项)。

让用户可以更加灵活的时候扩展功能。

示例

使用方式: 复制下列代码至粘贴板

自定义录制打开的浏览器

json
{
+import{_ as s,v as a,b as n,R as o}from"./chunks/framework.caa0fbaf.js";const h=JSON.parse('{"title":"粘贴板配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/pasteConfig.md","filePath":"guide/api/pasteConfig.md","lastUpdated":1691029002000}'),l={name:"guide/api/pasteConfig.md"},p=o(`

粘贴板配置

介绍

YinTao 作为底层引擎,经常会在多个平台间使用,为了让用户能够更好的使用YinTao功能,以及兼容一些平台实现的差异。 我们提供了通用的粘贴板配置模式。

原理

在执行中或录制中,平台将传递一系列参数来控制具体执行的行为,现在我们允许用户去覆盖或扩充它 (注: 仅针对本地有效)

我们读取用户的粘贴板内容,转化为配置文件,并覆盖原始配置(仅针对修改项)。

让用户可以更加灵活的时候扩展功能。

示例

使用方式: 复制下列代码至粘贴板

自定义录制打开的浏览器

json
{
     "url": "https://jd.com"
 }

模拟录制h5页面

json
{
     "url": "https://jd.com",
diff --git a/assets/guide_api_wsApi.md.b829c86e.js b/assets/guide_api_wsApi.md.86c543fa.js
similarity index 99%
rename from assets/guide_api_wsApi.md.b829c86e.js
rename to assets/guide_api_wsApi.md.86c543fa.js
index 64a0632..ee7c786 100644
--- a/assets/guide_api_wsApi.md.b829c86e.js
+++ b/assets/guide_api_wsApi.md.86c543fa.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as o,R as n}from"./chunks/framework.caa0fbaf.js";const d=JSON.parse('{"title":"websockt服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/wsApi.md","filePath":"guide/api/wsApi.md","lastUpdated":1690977245000}'),p={name:"guide/api/wsApi.md"},l=n(`

websockt服务

概要

YinTao 启动后默认占用本机8888端口,对外提供websocket服务。

它更适合在网页端使用避免触发CORS

通用数据协议

http不同Websocket采用数据协议进行交互。

这意味着我们需要提供符合规范的数据才能被正确解析。

YinTao内部采用json结构传递数据。

例:

json
{
+import{_ as s,v as a,b as o,R as n}from"./chunks/framework.caa0fbaf.js";const d=JSON.parse('{"title":"websockt服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/wsApi.md","filePath":"guide/api/wsApi.md","lastUpdated":1691029002000}'),p={name:"guide/api/wsApi.md"},l=n(`

websockt服务

概要

YinTao 启动后默认占用本机8888端口,对外提供websocket服务。

它更适合在网页端使用避免触发CORS

通用数据协议

http不同Websocket采用数据协议进行交互。

这意味着我们需要提供符合规范的数据才能被正确解析。

YinTao内部采用json结构传递数据。

例:

json
{
   "api": "run",
   "config": {
     "script":"page.to('https://baidu.com')",
diff --git a/assets/guide_api_wsApi.md.b829c86e.lean.js b/assets/guide_api_wsApi.md.86c543fa.lean.js
similarity index 99%
rename from assets/guide_api_wsApi.md.b829c86e.lean.js
rename to assets/guide_api_wsApi.md.86c543fa.lean.js
index 64a0632..ee7c786 100644
--- a/assets/guide_api_wsApi.md.b829c86e.lean.js
+++ b/assets/guide_api_wsApi.md.86c543fa.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as o,R as n}from"./chunks/framework.caa0fbaf.js";const d=JSON.parse('{"title":"websockt服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/wsApi.md","filePath":"guide/api/wsApi.md","lastUpdated":1690977245000}'),p={name:"guide/api/wsApi.md"},l=n(`

websockt服务

概要

YinTao 启动后默认占用本机8888端口,对外提供websocket服务。

它更适合在网页端使用避免触发CORS

通用数据协议

http不同Websocket采用数据协议进行交互。

这意味着我们需要提供符合规范的数据才能被正确解析。

YinTao内部采用json结构传递数据。

例:

json
{
+import{_ as s,v as a,b as o,R as n}from"./chunks/framework.caa0fbaf.js";const d=JSON.parse('{"title":"websockt服务","description":"","frontmatter":{},"headers":[],"relativePath":"guide/api/wsApi.md","filePath":"guide/api/wsApi.md","lastUpdated":1691029002000}'),p={name:"guide/api/wsApi.md"},l=n(`

websockt服务

概要

YinTao 启动后默认占用本机8888端口,对外提供websocket服务。

它更适合在网页端使用避免触发CORS

通用数据协议

http不同Websocket采用数据协议进行交互。

这意味着我们需要提供符合规范的数据才能被正确解析。

YinTao内部采用json结构传递数据。

例:

json
{
   "api": "run",
   "config": {
     "script":"page.to('https://baidu.com')",
diff --git a/assets/guide_course_step.md.7122ee79.js b/assets/guide_course_step.md.f3b2a4da.js
similarity index 97%
rename from assets/guide_course_step.md.7122ee79.js
rename to assets/guide_course_step.md.f3b2a4da.js
index 7379356..032223d 100644
--- a/assets/guide_course_step.md.7122ee79.js
+++ b/assets/guide_course_step.md.f3b2a4da.js
@@ -1 +1 @@
-import{_ as e,v as a,b as t,R as o}from"./chunks/framework.caa0fbaf.js";const s="/assets/mac_prb.e0261e25.png",i="/assets/mac_prb1.5a32823e.png",r="/assets/mac_prb2.26b327b4.png",f=JSON.parse('{"title":"安装说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/step.md","filePath":"guide/course/step.md","lastUpdated":1690977245000}'),l={name:"guide/course/step.md"},c=o('

安装说明

Windows安装

跳转至下载页面,点击WIN下载按钮,等待下载完成后,逐一点击下一步直至安装完成。

Mac安装

跳转至下载页面,点击MAC下载按钮,等待下载完成后,拖动YinTao-drive.app进Applications即可。

安装成功校验

  • 打开桌面YinTao应用,然后打开浏览器,地址栏输入:http://localhost:8777/ping
  • 返回{"ok":1}即代表安装成功

安装问题说明

  • 无法打开软件,如上图,请在系统偏好设置->安全性与隐私页面,勾选任何来源,见下图。

  • 如上图设置页面,没有任何来源选项,请打开终端(启动器->其他->终端)
  • 输入sudo spctl --master-disable
  • 根据提示输入电脑开机密码,再次打开软件,弹窗点击打开即可

使用过程中如果你有任何的意见或者问题,欢迎反馈

',14),d=[c];function n(p,h,u,m,_,g){return a(),t("div",null,d)}const q=e(l,[["render",n]]);export{f as __pageData,q as default}; +import{_ as e,v as a,b as t,R as o}from"./chunks/framework.caa0fbaf.js";const s="/assets/mac_prb.e0261e25.png",i="/assets/mac_prb1.5a32823e.png",r="/assets/mac_prb2.26b327b4.png",f=JSON.parse('{"title":"安装说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/step.md","filePath":"guide/course/step.md","lastUpdated":1691029002000}'),l={name:"guide/course/step.md"},c=o('

安装说明

Windows安装

跳转至下载页面,点击WIN下载按钮,等待下载完成后,逐一点击下一步直至安装完成。

Mac安装

跳转至下载页面,点击MAC下载按钮,等待下载完成后,拖动YinTao-drive.app进Applications即可。

安装成功校验

  • 打开桌面YinTao应用,然后打开浏览器,地址栏输入:http://localhost:8777/ping
  • 返回{"ok":1}即代表安装成功

安装问题说明

  • 无法打开软件,如上图,请在系统偏好设置->安全性与隐私页面,勾选任何来源,见下图。

  • 如上图设置页面,没有任何来源选项,请打开终端(启动器->其他->终端)
  • 输入sudo spctl --master-disable
  • 根据提示输入电脑开机密码,再次打开软件,弹窗点击打开即可

使用过程中如果你有任何的意见或者问题,欢迎反馈

',14),d=[c];function n(p,h,u,m,_,g){return a(),t("div",null,d)}const q=e(l,[["render",n]]);export{f as __pageData,q as default}; diff --git a/assets/guide_course_step.md.7122ee79.lean.js b/assets/guide_course_step.md.f3b2a4da.lean.js similarity index 97% rename from assets/guide_course_step.md.7122ee79.lean.js rename to assets/guide_course_step.md.f3b2a4da.lean.js index 7379356..032223d 100644 --- a/assets/guide_course_step.md.7122ee79.lean.js +++ b/assets/guide_course_step.md.f3b2a4da.lean.js @@ -1 +1 @@ -import{_ as e,v as a,b as t,R as o}from"./chunks/framework.caa0fbaf.js";const s="/assets/mac_prb.e0261e25.png",i="/assets/mac_prb1.5a32823e.png",r="/assets/mac_prb2.26b327b4.png",f=JSON.parse('{"title":"安装说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/step.md","filePath":"guide/course/step.md","lastUpdated":1690977245000}'),l={name:"guide/course/step.md"},c=o('

安装说明

Windows安装

跳转至下载页面,点击WIN下载按钮,等待下载完成后,逐一点击下一步直至安装完成。

Mac安装

跳转至下载页面,点击MAC下载按钮,等待下载完成后,拖动YinTao-drive.app进Applications即可。

安装成功校验

  • 打开桌面YinTao应用,然后打开浏览器,地址栏输入:http://localhost:8777/ping
  • 返回{"ok":1}即代表安装成功

安装问题说明

  • 无法打开软件,如上图,请在系统偏好设置->安全性与隐私页面,勾选任何来源,见下图。

  • 如上图设置页面,没有任何来源选项,请打开终端(启动器->其他->终端)
  • 输入sudo spctl --master-disable
  • 根据提示输入电脑开机密码,再次打开软件,弹窗点击打开即可

使用过程中如果你有任何的意见或者问题,欢迎反馈

',14),d=[c];function n(p,h,u,m,_,g){return a(),t("div",null,d)}const q=e(l,[["render",n]]);export{f as __pageData,q as default}; +import{_ as e,v as a,b as t,R as o}from"./chunks/framework.caa0fbaf.js";const s="/assets/mac_prb.e0261e25.png",i="/assets/mac_prb1.5a32823e.png",r="/assets/mac_prb2.26b327b4.png",f=JSON.parse('{"title":"安装说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/step.md","filePath":"guide/course/step.md","lastUpdated":1691029002000}'),l={name:"guide/course/step.md"},c=o('

安装说明

Windows安装

跳转至下载页面,点击WIN下载按钮,等待下载完成后,逐一点击下一步直至安装完成。

Mac安装

跳转至下载页面,点击MAC下载按钮,等待下载完成后,拖动YinTao-drive.app进Applications即可。

安装成功校验

  • 打开桌面YinTao应用,然后打开浏览器,地址栏输入:http://localhost:8777/ping
  • 返回{"ok":1}即代表安装成功

安装问题说明

  • 无法打开软件,如上图,请在系统偏好设置->安全性与隐私页面,勾选任何来源,见下图。

  • 如上图设置页面,没有任何来源选项,请打开终端(启动器->其他->终端)
  • 输入sudo spctl --master-disable
  • 根据提示输入电脑开机密码,再次打开软件,弹窗点击打开即可

使用过程中如果你有任何的意见或者问题,欢迎反馈

',14),d=[c];function n(p,h,u,m,_,g){return a(),t("div",null,d)}const q=e(l,[["render",n]]);export{f as __pageData,q as default}; diff --git a/assets/guide_course_trace.md.00cbfbf7.js b/assets/guide_course_trace.md.aeaf97ad.js similarity index 99% rename from assets/guide_course_trace.md.00cbfbf7.js rename to assets/guide_course_trace.md.aeaf97ad.js index ee825ad..921b85e 100644 --- a/assets/guide_course_trace.md.00cbfbf7.js +++ b/assets/guide_course_trace.md.aeaf97ad.js @@ -1,4 +1,4 @@ -import{_ as s,v as a,b as n,R as o}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"问题追踪","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/trace.md","filePath":"guide/course/trace.md","lastUpdated":1690977245000}'),l={name:"guide/course/trace.md"},p=o(`

问题追踪

YinTao: version-1.1.5版本开始,引擎内提供了执行问题追踪功能。使用追踪功能可以大幅提高远程执行问题调试的时间,可帮助您在脚本运行后探索执行的记录。 并提供本地或在线预览的能力。

使用跟踪

使用跟踪的方法为,在调用执行接口时,向执行参数remoteReport中追加 trace 地址 trace可以传递 url,或本地路径(非本地执行只能传递http地址)

本地追踪

例:

js
{
+import{_ as s,v as a,b as n,R as o}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"问题追踪","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/trace.md","filePath":"guide/course/trace.md","lastUpdated":1691029002000}'),l={name:"guide/course/trace.md"},p=o(`

问题追踪

YinTao: version-1.1.5版本开始,引擎内提供了执行问题追踪功能。使用追踪功能可以大幅提高远程执行问题调试的时间,可帮助您在脚本运行后探索执行的记录。 并提供本地或在线预览的能力。

使用跟踪

使用跟踪的方法为,在调用执行接口时,向执行参数remoteReport中追加 trace 地址 trace可以传递 url,或本地路径(非本地执行只能传递http地址)

本地追踪

例:

js
{
    "remoteReport": {
         "trace": "/Users/zhouyuan11/work/test/trace.zip"  // 本地路径需要以zip结尾
     },
diff --git a/assets/guide_course_trace.md.00cbfbf7.lean.js b/assets/guide_course_trace.md.aeaf97ad.lean.js
similarity index 99%
rename from assets/guide_course_trace.md.00cbfbf7.lean.js
rename to assets/guide_course_trace.md.aeaf97ad.lean.js
index ee825ad..921b85e 100644
--- a/assets/guide_course_trace.md.00cbfbf7.lean.js
+++ b/assets/guide_course_trace.md.aeaf97ad.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as o}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"问题追踪","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/trace.md","filePath":"guide/course/trace.md","lastUpdated":1690977245000}'),l={name:"guide/course/trace.md"},p=o(`

问题追踪

YinTao: version-1.1.5版本开始,引擎内提供了执行问题追踪功能。使用追踪功能可以大幅提高远程执行问题调试的时间,可帮助您在脚本运行后探索执行的记录。 并提供本地或在线预览的能力。

使用跟踪

使用跟踪的方法为,在调用执行接口时,向执行参数remoteReport中追加 trace 地址 trace可以传递 url,或本地路径(非本地执行只能传递http地址)

本地追踪

例:

js
{
+import{_ as s,v as a,b as n,R as o}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"问题追踪","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/trace.md","filePath":"guide/course/trace.md","lastUpdated":1691029002000}'),l={name:"guide/course/trace.md"},p=o(`

问题追踪

YinTao: version-1.1.5版本开始,引擎内提供了执行问题追踪功能。使用追踪功能可以大幅提高远程执行问题调试的时间,可帮助您在脚本运行后探索执行的记录。 并提供本地或在线预览的能力。

使用跟踪

使用跟踪的方法为,在调用执行接口时,向执行参数remoteReport中追加 trace 地址 trace可以传递 url,或本地路径(非本地执行只能传递http地址)

本地追踪

例:

js
{
    "remoteReport": {
         "trace": "/Users/zhouyuan11/work/test/trace.zip"  // 本地路径需要以zip结尾
     },
diff --git a/assets/guide_course_use.md.cbdce848.js b/assets/guide_course_use.md.5f12ffd6.js
similarity index 98%
rename from assets/guide_course_use.md.cbdce848.js
rename to assets/guide_course_use.md.5f12ffd6.js
index 0ff9d6d..3361e12 100644
--- a/assets/guide_course_use.md.cbdce848.js
+++ b/assets/guide_course_use.md.5f12ffd6.js
@@ -1,4 +1,4 @@
-import{_ as n,v as t,b as e,L as a,R as o,F as s}from"./chunks/framework.caa0fbaf.js";const l="/assets/postman_live.ff389554.png",p="/assets/postman_run.d885d64e.png",q=JSON.parse('{"title":"使用说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/use.md","filePath":"guide/course/use.md","lastUpdated":1690977245000}'),c={name:"guide/course/use.md"},r=o(`

使用说明

Postman

录制脚本

  • 打开postman,创建post请求,地址栏输入:http://localhost:8777/live
  • Body选择raw,格式选择JSON,内容输入如下
js
{
+import{_ as n,v as t,b as e,L as a,R as o,F as s}from"./chunks/framework.caa0fbaf.js";const l="/assets/postman_live.ff389554.png",p="/assets/postman_run.d885d64e.png",q=JSON.parse('{"title":"使用说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/use.md","filePath":"guide/course/use.md","lastUpdated":1691029002000}'),c={name:"guide/course/use.md"},r=o(`

使用说明

Postman

录制脚本

  • 打开postman,创建post请求,地址栏输入:http://localhost:8777/live
  • Body选择raw,格式选择JSON,内容输入如下
js
{
   "url": "https://element.eleme.cn/#/zh-CN/component/cascader",
   "storage": {
     "id":123
diff --git a/assets/guide_course_use.md.cbdce848.lean.js b/assets/guide_course_use.md.5f12ffd6.lean.js
similarity index 98%
rename from assets/guide_course_use.md.cbdce848.lean.js
rename to assets/guide_course_use.md.5f12ffd6.lean.js
index 0ff9d6d..3361e12 100644
--- a/assets/guide_course_use.md.cbdce848.lean.js
+++ b/assets/guide_course_use.md.5f12ffd6.lean.js
@@ -1,4 +1,4 @@
-import{_ as n,v as t,b as e,L as a,R as o,F as s}from"./chunks/framework.caa0fbaf.js";const l="/assets/postman_live.ff389554.png",p="/assets/postman_run.d885d64e.png",q=JSON.parse('{"title":"使用说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/use.md","filePath":"guide/course/use.md","lastUpdated":1690977245000}'),c={name:"guide/course/use.md"},r=o(`

使用说明

Postman

录制脚本

  • 打开postman,创建post请求,地址栏输入:http://localhost:8777/live
  • Body选择raw,格式选择JSON,内容输入如下
js
{
+import{_ as n,v as t,b as e,L as a,R as o,F as s}from"./chunks/framework.caa0fbaf.js";const l="/assets/postman_live.ff389554.png",p="/assets/postman_run.d885d64e.png",q=JSON.parse('{"title":"使用说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/course/use.md","filePath":"guide/course/use.md","lastUpdated":1691029002000}'),c={name:"guide/course/use.md"},r=o(`

使用说明

Postman

录制脚本

  • 打开postman,创建post请求,地址栏输入:http://localhost:8777/live
  • Body选择raw,格式选择JSON,内容输入如下
js
{
   "url": "https://element.eleme.cn/#/zh-CN/component/cascader",
   "storage": {
     "id":123
diff --git a/assets/guide_data_cookie.md.8556d521.js b/assets/guide_data_cookie.md.8ba04d1d.js
similarity index 92%
rename from assets/guide_data_cookie.md.8556d521.js
rename to assets/guide_data_cookie.md.8ba04d1d.js
index 85057a9..aa555e3 100644
--- a/assets/guide_data_cookie.md.8556d521.js
+++ b/assets/guide_data_cookie.md.8ba04d1d.js
@@ -1 +1 @@
-import{_ as o,v as e,b as i,R as c}from"./chunks/framework.caa0fbaf.js";const h=JSON.parse('{"title":"Cookie object","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/cookie.md","filePath":"guide/data/cookie.md","lastUpdated":1690977245000}'),t={name:"guide/data/cookie.md"},a=c('

Cookie object

录制时cookie必须额外传递url: string 标明录制地址。

  • name : string - cookie 的名称。
  • value: string - cookie 的值。
  • domain: string(optional)- cookie 的域;这将使用前面的点进行标准化,以便它对子域也有效。
  • hostOnly: boolean(optional) - cookie 是否是 host-only cookie;true只有在没有通过域的情况下才会出现这种情况。
  • path: string(optional)- cookie 的路径。
  • secure: boolean(optional) - cookie 是否被标记为安全。
  • httpOnly布尔值(optional)- cookie 是否仅标记为 HTTP。
  • session: boolean(optional) - cookie 是会话 cookie 还是具有到期日期的持久 cookie。
  • expirationDate Double(optional)- cookie 的到期日期,即自 UNIX 纪元以来的秒数。不为会话 cookie 提供。
  • sameSite: string(optional) -应用于此 cookie的相同站点策略。可以是unspecified、no_restriction或laxstrict。
',3),d=[a];function l(n,s,r,k,p,u){return e(),i("div",null,d)}const b=o(t,[["render",l]]);export{h as __pageData,b as default}; +import{_ as o,v as e,b as i,R as c}from"./chunks/framework.caa0fbaf.js";const h=JSON.parse('{"title":"Cookie object","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/cookie.md","filePath":"guide/data/cookie.md","lastUpdated":1691029002000}'),t={name:"guide/data/cookie.md"},a=c('

Cookie object

录制时cookie必须额外传递url: string 标明录制地址。

  • name : string - cookie 的名称。
  • value: string - cookie 的值。
  • domain: string(optional)- cookie 的域;这将使用前面的点进行标准化,以便它对子域也有效。
  • hostOnly: boolean(optional) - cookie 是否是 host-only cookie;true只有在没有通过域的情况下才会出现这种情况。
  • path: string(optional)- cookie 的路径。
  • secure: boolean(optional) - cookie 是否被标记为安全。
  • httpOnly布尔值(optional)- cookie 是否仅标记为 HTTP。
  • session: boolean(optional) - cookie 是会话 cookie 还是具有到期日期的持久 cookie。
  • expirationDate Double(optional)- cookie 的到期日期,即自 UNIX 纪元以来的秒数。不为会话 cookie 提供。
  • sameSite: string(optional) -应用于此 cookie的相同站点策略。可以是unspecified、no_restriction或laxstrict。
',3),d=[a];function l(n,s,r,k,p,u){return e(),i("div",null,d)}const b=o(t,[["render",l]]);export{h as __pageData,b as default}; diff --git a/assets/guide_data_cookie.md.8556d521.lean.js b/assets/guide_data_cookie.md.8ba04d1d.lean.js similarity index 92% rename from assets/guide_data_cookie.md.8556d521.lean.js rename to assets/guide_data_cookie.md.8ba04d1d.lean.js index 85057a9..aa555e3 100644 --- a/assets/guide_data_cookie.md.8556d521.lean.js +++ b/assets/guide_data_cookie.md.8ba04d1d.lean.js @@ -1 +1 @@ -import{_ as o,v as e,b as i,R as c}from"./chunks/framework.caa0fbaf.js";const h=JSON.parse('{"title":"Cookie object","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/cookie.md","filePath":"guide/data/cookie.md","lastUpdated":1690977245000}'),t={name:"guide/data/cookie.md"},a=c('

Cookie object

录制时cookie必须额外传递url: string 标明录制地址。

  • name : string - cookie 的名称。
  • value: string - cookie 的值。
  • domain: string(optional)- cookie 的域;这将使用前面的点进行标准化,以便它对子域也有效。
  • hostOnly: boolean(optional) - cookie 是否是 host-only cookie;true只有在没有通过域的情况下才会出现这种情况。
  • path: string(optional)- cookie 的路径。
  • secure: boolean(optional) - cookie 是否被标记为安全。
  • httpOnly布尔值(optional)- cookie 是否仅标记为 HTTP。
  • session: boolean(optional) - cookie 是会话 cookie 还是具有到期日期的持久 cookie。
  • expirationDate Double(optional)- cookie 的到期日期,即自 UNIX 纪元以来的秒数。不为会话 cookie 提供。
  • sameSite: string(optional) -应用于此 cookie的相同站点策略。可以是unspecified、no_restriction或laxstrict。
',3),d=[a];function l(n,s,r,k,p,u){return e(),i("div",null,d)}const b=o(t,[["render",l]]);export{h as __pageData,b as default}; +import{_ as o,v as e,b as i,R as c}from"./chunks/framework.caa0fbaf.js";const h=JSON.parse('{"title":"Cookie object","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/cookie.md","filePath":"guide/data/cookie.md","lastUpdated":1691029002000}'),t={name:"guide/data/cookie.md"},a=c('

Cookie object

录制时cookie必须额外传递url: string 标明录制地址。

  • name : string - cookie 的名称。
  • value: string - cookie 的值。
  • domain: string(optional)- cookie 的域;这将使用前面的点进行标准化,以便它对子域也有效。
  • hostOnly: boolean(optional) - cookie 是否是 host-only cookie;true只有在没有通过域的情况下才会出现这种情况。
  • path: string(optional)- cookie 的路径。
  • secure: boolean(optional) - cookie 是否被标记为安全。
  • httpOnly布尔值(optional)- cookie 是否仅标记为 HTTP。
  • session: boolean(optional) - cookie 是会话 cookie 还是具有到期日期的持久 cookie。
  • expirationDate Double(optional)- cookie 的到期日期,即自 UNIX 纪元以来的秒数。不为会话 cookie 提供。
  • sameSite: string(optional) -应用于此 cookie的相同站点策略。可以是unspecified、no_restriction或laxstrict。
',3),d=[a];function l(n,s,r,k,p,u){return e(),i("div",null,d)}const b=o(t,[["render",l]]);export{h as __pageData,b as default}; diff --git a/assets/guide_data_errorCode.md.967c1c76.js b/assets/guide_data_errorCode.md.7c1597ff.js similarity index 91% rename from assets/guide_data_errorCode.md.967c1c76.js rename to assets/guide_data_errorCode.md.7c1597ff.js index 1b0c527..4f78ea4 100644 --- a/assets/guide_data_errorCode.md.967c1c76.js +++ b/assets/guide_data_errorCode.md.7c1597ff.js @@ -1 +1 @@ -import{_ as t,v as d,b as e,R as a}from"./chunks/framework.caa0fbaf.js";const p=JSON.parse('{"title":"错误码","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/errorCode.md","filePath":"guide/data/errorCode.md","lastUpdated":1690977245000}'),r={name:"guide/data/errorCode.md"},o=a('

错误码

定义规范

我们理想提供通俗易通的错误码管理,在http error code 补充一位并丰富内容。

前缀含义示例
^1提示信息1000
^2成功信息2000
^3警告信息3002
^4错误信息4004

错误码列表

code描述
1001录制操作被取消
2000通用success
4025代码编译错误
',6),h=[o];function s(i,c,n,l,b,u){return d(),e("div",null,h)}const f=t(r,[["render",s]]);export{p as __pageData,f as default}; +import{_ as t,v as d,b as e,R as a}from"./chunks/framework.caa0fbaf.js";const p=JSON.parse('{"title":"错误码","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/errorCode.md","filePath":"guide/data/errorCode.md","lastUpdated":1691029002000}'),r={name:"guide/data/errorCode.md"},o=a('

错误码

定义规范

我们理想提供通俗易通的错误码管理,在http error code 补充一位并丰富内容。

前缀含义示例
^1提示信息1000
^2成功信息2000
^3警告信息3002
^4错误信息4004

错误码列表

code描述
1001录制操作被取消
2000通用success
4025代码编译错误
',6),h=[o];function s(i,c,n,l,b,u){return d(),e("div",null,h)}const f=t(r,[["render",s]]);export{p as __pageData,f as default}; diff --git a/assets/guide_data_errorCode.md.967c1c76.lean.js b/assets/guide_data_errorCode.md.7c1597ff.lean.js similarity index 91% rename from assets/guide_data_errorCode.md.967c1c76.lean.js rename to assets/guide_data_errorCode.md.7c1597ff.lean.js index 1b0c527..4f78ea4 100644 --- a/assets/guide_data_errorCode.md.967c1c76.lean.js +++ b/assets/guide_data_errorCode.md.7c1597ff.lean.js @@ -1 +1 @@ -import{_ as t,v as d,b as e,R as a}from"./chunks/framework.caa0fbaf.js";const p=JSON.parse('{"title":"错误码","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/errorCode.md","filePath":"guide/data/errorCode.md","lastUpdated":1690977245000}'),r={name:"guide/data/errorCode.md"},o=a('

错误码

定义规范

我们理想提供通俗易通的错误码管理,在http error code 补充一位并丰富内容。

前缀含义示例
^1提示信息1000
^2成功信息2000
^3警告信息3002
^4错误信息4004

错误码列表

code描述
1001录制操作被取消
2000通用success
4025代码编译错误
',6),h=[o];function s(i,c,n,l,b,u){return d(),e("div",null,h)}const f=t(r,[["render",s]]);export{p as __pageData,f as default}; +import{_ as t,v as d,b as e,R as a}from"./chunks/framework.caa0fbaf.js";const p=JSON.parse('{"title":"错误码","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/errorCode.md","filePath":"guide/data/errorCode.md","lastUpdated":1691029002000}'),r={name:"guide/data/errorCode.md"},o=a('

错误码

定义规范

我们理想提供通俗易通的错误码管理,在http error code 补充一位并丰富内容。

前缀含义示例
^1提示信息1000
^2成功信息2000
^3警告信息3002
^4错误信息4004

错误码列表

code描述
1001录制操作被取消
2000通用success
4025代码编译错误
',6),h=[o];function s(i,c,n,l,b,u){return d(),e("div",null,h)}const f=t(r,[["render",s]]);export{p as __pageData,f as default}; diff --git a/assets/guide_data_keyCode.md.4cab5f31.js b/assets/guide_data_keyCode.md.14038dc1.js similarity index 99% rename from assets/guide_data_keyCode.md.4cab5f31.js rename to assets/guide_data_keyCode.md.14038dc1.js index 9aa5e5d..419672a 100644 --- a/assets/guide_data_keyCode.md.4cab5f31.js +++ b/assets/guide_data_keyCode.md.14038dc1.js @@ -1,4 +1,4 @@ -import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const E=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/keyCode.md","filePath":"guide/data/keyCode.md","lastUpdated":1690977245000}'),p={name:"guide/data/keyCode.md"},o=l(`

keyCode

键盘信息 YinTao驱动支持模拟键盘操作,支持的操作如下:

js
| '0'| '1'| '2'| '3'| '4'| '5'| '6'| '7'| '8'| '9'
+import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const E=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/keyCode.md","filePath":"guide/data/keyCode.md","lastUpdated":1691029002000}'),p={name:"guide/data/keyCode.md"},o=l(`

keyCode

键盘信息 YinTao驱动支持模拟键盘操作,支持的操作如下:

js
| '0'| '1'| '2'| '3'| '4'| '5'| '6'| '7'| '8'| '9'
   | 'Power'| 'Eject'| 'Abort'| 'Help'| 'Backspace'| 'Tab'| 'Numpad5'| 'NumpadEnter'
   | 'Enter'| 'ShiftLeft'| 'ShiftRight'| 'ControlLeft'| 'ControlRight'| 'AltLeft'
   | 'AltRight'| 'Pause'| 'CapsLock'| 'Escape'| 'Convert'| 'NonConvert'| 'Space'
diff --git a/assets/guide_data_keyCode.md.4cab5f31.lean.js b/assets/guide_data_keyCode.md.14038dc1.lean.js
similarity index 99%
rename from assets/guide_data_keyCode.md.4cab5f31.lean.js
rename to assets/guide_data_keyCode.md.14038dc1.lean.js
index 9aa5e5d..419672a 100644
--- a/assets/guide_data_keyCode.md.4cab5f31.lean.js
+++ b/assets/guide_data_keyCode.md.14038dc1.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const E=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/keyCode.md","filePath":"guide/data/keyCode.md","lastUpdated":1690977245000}'),p={name:"guide/data/keyCode.md"},o=l(`

keyCode

键盘信息 YinTao驱动支持模拟键盘操作,支持的操作如下:

js
| '0'| '1'| '2'| '3'| '4'| '5'| '6'| '7'| '8'| '9'
+import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const E=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/data/keyCode.md","filePath":"guide/data/keyCode.md","lastUpdated":1691029002000}'),p={name:"guide/data/keyCode.md"},o=l(`

keyCode

键盘信息 YinTao驱动支持模拟键盘操作,支持的操作如下:

js
| '0'| '1'| '2'| '3'| '4'| '5'| '6'| '7'| '8'| '9'
   | 'Power'| 'Eject'| 'Abort'| 'Help'| 'Backspace'| 'Tab'| 'Numpad5'| 'NumpadEnter'
   | 'Enter'| 'ShiftLeft'| 'ShiftRight'| 'ControlLeft'| 'ControlRight'| 'AltLeft'
   | 'AltRight'| 'Pause'| 'CapsLock'| 'Escape'| 'Convert'| 'NonConvert'| 'Space'
diff --git a/assets/guide_ex_ex1.md.d385be3b.js b/assets/guide_ex_ex1.md.2b0cdea4.js
similarity index 95%
rename from assets/guide_ex_ex1.md.d385be3b.js
rename to assets/guide_ex_ex1.md.2b0cdea4.js
index ebaf502..748b587 100644
--- a/assets/guide_ex_ex1.md.d385be3b.js
+++ b/assets/guide_ex_ex1.md.2b0cdea4.js
@@ -1 +1 @@
-import{_ as e,v as a,b as i,R as t}from"./chunks/framework.caa0fbaf.js";const f=JSON.parse('{"title":"实现原理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex1.md","filePath":"guide/ex/ex1.md","lastUpdated":1690977245000}'),l={name:"guide/ex/ex1.md"},s=t('

实现原理

录制原理

  • 通过webview加载目标页面,向目标页面注入js,获取控制权。
  • 通过js监听用户的行为及操作,将监听的行为转换为匹配的语法。
  • 将录制生成的语法进行存储生成脚本文件。

脚本执行原理

  • 读取传输的脚本文件。
  • 新建一个浏览器进程并通过js解析语法转为指令,将指令分层级通过进行ipc进行传输,层级按照 浏览器>页面> iframe。
  • 具体页面拿到响应的指令,再将指令转换为具体的js脚本执行,并记录执行数据。
  • 运行完成后,将执行数据结果返回。
',5),r=[s];function o(d,n,h,c,u,_){return a(),i("div",null,r)}const m=e(l,[["render",o]]);export{f as __pageData,m as default}; +import{_ as e,v as a,b as i,R as t}from"./chunks/framework.caa0fbaf.js";const f=JSON.parse('{"title":"实现原理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex1.md","filePath":"guide/ex/ex1.md","lastUpdated":1691029002000}'),l={name:"guide/ex/ex1.md"},s=t('

实现原理

录制原理

  • 通过webview加载目标页面,向目标页面注入js,获取控制权。
  • 通过js监听用户的行为及操作,将监听的行为转换为匹配的语法。
  • 将录制生成的语法进行存储生成脚本文件。

脚本执行原理

  • 读取传输的脚本文件。
  • 新建一个浏览器进程并通过js解析语法转为指令,将指令分层级通过进行ipc进行传输,层级按照 浏览器>页面> iframe。
  • 具体页面拿到响应的指令,再将指令转换为具体的js脚本执行,并记录执行数据。
  • 运行完成后,将执行数据结果返回。
',5),r=[s];function o(d,n,h,c,u,_){return a(),i("div",null,r)}const m=e(l,[["render",o]]);export{f as __pageData,m as default}; diff --git a/assets/guide_ex_ex1.md.d385be3b.lean.js b/assets/guide_ex_ex1.md.2b0cdea4.lean.js similarity index 95% rename from assets/guide_ex_ex1.md.d385be3b.lean.js rename to assets/guide_ex_ex1.md.2b0cdea4.lean.js index ebaf502..748b587 100644 --- a/assets/guide_ex_ex1.md.d385be3b.lean.js +++ b/assets/guide_ex_ex1.md.2b0cdea4.lean.js @@ -1 +1 @@ -import{_ as e,v as a,b as i,R as t}from"./chunks/framework.caa0fbaf.js";const f=JSON.parse('{"title":"实现原理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex1.md","filePath":"guide/ex/ex1.md","lastUpdated":1690977245000}'),l={name:"guide/ex/ex1.md"},s=t('

实现原理

录制原理

  • 通过webview加载目标页面,向目标页面注入js,获取控制权。
  • 通过js监听用户的行为及操作,将监听的行为转换为匹配的语法。
  • 将录制生成的语法进行存储生成脚本文件。

脚本执行原理

  • 读取传输的脚本文件。
  • 新建一个浏览器进程并通过js解析语法转为指令,将指令分层级通过进行ipc进行传输,层级按照 浏览器>页面> iframe。
  • 具体页面拿到响应的指令,再将指令转换为具体的js脚本执行,并记录执行数据。
  • 运行完成后,将执行数据结果返回。
',5),r=[s];function o(d,n,h,c,u,_){return a(),i("div",null,r)}const m=e(l,[["render",o]]);export{f as __pageData,m as default}; +import{_ as e,v as a,b as i,R as t}from"./chunks/framework.caa0fbaf.js";const f=JSON.parse('{"title":"实现原理","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex1.md","filePath":"guide/ex/ex1.md","lastUpdated":1691029002000}'),l={name:"guide/ex/ex1.md"},s=t('

实现原理

录制原理

  • 通过webview加载目标页面,向目标页面注入js,获取控制权。
  • 通过js监听用户的行为及操作,将监听的行为转换为匹配的语法。
  • 将录制生成的语法进行存储生成脚本文件。

脚本执行原理

  • 读取传输的脚本文件。
  • 新建一个浏览器进程并通过js解析语法转为指令,将指令分层级通过进行ipc进行传输,层级按照 浏览器>页面> iframe。
  • 具体页面拿到响应的指令,再将指令转换为具体的js脚本执行,并记录执行数据。
  • 运行完成后,将执行数据结果返回。
',5),r=[s];function o(d,n,h,c,u,_){return a(),i("div",null,r)}const m=e(l,[["render",o]]);export{f as __pageData,m as default}; diff --git a/assets/guide_ex_ex2.md.084a4867.js b/assets/guide_ex_ex2.md.4e83a04c.js similarity index 96% rename from assets/guide_ex_ex2.md.084a4867.js rename to assets/guide_ex_ex2.md.4e83a04c.js index 9bf2c5c..9c9424c 100644 --- a/assets/guide_ex_ex2.md.084a4867.js +++ b/assets/guide_ex_ex2.md.4e83a04c.js @@ -1 +1 @@ -import{_ as a,v as e,b as t,R as r}from"./chunks/framework.caa0fbaf.js";const _=JSON.parse('{"title":"特性","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex2.md","filePath":"guide/ex/ex2.md","lastUpdated":1690977245000}'),o={name:"guide/ex/ex2.md"},i=r('

特性

上手简单

     基于录制生成准确代码,使用门槛低。

丰富底层指令支持

     开发时,我们内置了多种基础指令,足以满足90%的用户场景。

开源共享

     我们使用MIT开源协议,用户可以充分扩展满足业务需求

实时运行上下文

     为使得逻辑更通俗易懂,设计时无需用户区分上下文环境,运行时将根据页面操作自动完成转化。

',9),s=[i];function d(h,n,l,c,p,u){return e(),t("div",null,s)}const f=a(o,[["render",d]]);export{_ as __pageData,f as default}; +import{_ as a,v as e,b as t,R as r}from"./chunks/framework.caa0fbaf.js";const _=JSON.parse('{"title":"特性","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex2.md","filePath":"guide/ex/ex2.md","lastUpdated":1691029002000}'),o={name:"guide/ex/ex2.md"},i=r('

特性

上手简单

     基于录制生成准确代码,使用门槛低。

丰富底层指令支持

     开发时,我们内置了多种基础指令,足以满足90%的用户场景。

开源共享

     我们使用MIT开源协议,用户可以充分扩展满足业务需求

实时运行上下文

     为使得逻辑更通俗易懂,设计时无需用户区分上下文环境,运行时将根据页面操作自动完成转化。

',9),s=[i];function d(h,n,l,c,p,u){return e(),t("div",null,s)}const f=a(o,[["render",d]]);export{_ as __pageData,f as default}; diff --git a/assets/guide_ex_ex2.md.084a4867.lean.js b/assets/guide_ex_ex2.md.4e83a04c.lean.js similarity index 96% rename from assets/guide_ex_ex2.md.084a4867.lean.js rename to assets/guide_ex_ex2.md.4e83a04c.lean.js index 9bf2c5c..9c9424c 100644 --- a/assets/guide_ex_ex2.md.084a4867.lean.js +++ b/assets/guide_ex_ex2.md.4e83a04c.lean.js @@ -1 +1 @@ -import{_ as a,v as e,b as t,R as r}from"./chunks/framework.caa0fbaf.js";const _=JSON.parse('{"title":"特性","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex2.md","filePath":"guide/ex/ex2.md","lastUpdated":1690977245000}'),o={name:"guide/ex/ex2.md"},i=r('

特性

上手简单

     基于录制生成准确代码,使用门槛低。

丰富底层指令支持

     开发时,我们内置了多种基础指令,足以满足90%的用户场景。

开源共享

     我们使用MIT开源协议,用户可以充分扩展满足业务需求

实时运行上下文

     为使得逻辑更通俗易懂,设计时无需用户区分上下文环境,运行时将根据页面操作自动完成转化。

',9),s=[i];function d(h,n,l,c,p,u){return e(),t("div",null,s)}const f=a(o,[["render",d]]);export{_ as __pageData,f as default}; +import{_ as a,v as e,b as t,R as r}from"./chunks/framework.caa0fbaf.js";const _=JSON.parse('{"title":"特性","description":"","frontmatter":{},"headers":[],"relativePath":"guide/ex/ex2.md","filePath":"guide/ex/ex2.md","lastUpdated":1691029002000}'),o={name:"guide/ex/ex2.md"},i=r('

特性

上手简单

     基于录制生成准确代码,使用门槛低。

丰富底层指令支持

     开发时,我们内置了多种基础指令,足以满足90%的用户场景。

开源共享

     我们使用MIT开源协议,用户可以充分扩展满足业务需求

实时运行上下文

     为使得逻辑更通俗易懂,设计时无需用户区分上下文环境,运行时将根据页面操作自动完成转化。

',9),s=[i];function d(h,n,l,c,p,u){return e(),t("div",null,s)}const f=a(o,[["render",d]]);export{_ as __pageData,f as default}; diff --git a/assets/guide_exam_apiHook.md.f20bd0b1.js b/assets/guide_exam_apiHook.md.33624e22.js similarity index 99% rename from assets/guide_exam_apiHook.md.f20bd0b1.js rename to assets/guide_exam_apiHook.md.33624e22.js index 02db5d6..0de770b 100644 --- a/assets/guide_exam_apiHook.md.f20bd0b1.js +++ b/assets/guide_exam_apiHook.md.33624e22.js @@ -1,4 +1,4 @@ -import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"接口数据测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/apiHook.md","filePath":"guide/exam/apiHook.md","lastUpdated":1690977245000}'),o={name:"guide/exam/apiHook.md"},p=l(`

接口数据测试

YinTao 内置强大的接口模块,可以满足日常几乎所有的数据测试类型。

接口数据监听和修改

js
await page.to('http://t.268xue.com/');
+import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"接口数据测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/apiHook.md","filePath":"guide/exam/apiHook.md","lastUpdated":1691029002000}'),o={name:"guide/exam/apiHook.md"},p=l(`

接口数据测试

YinTao 内置强大的接口模块,可以满足日常几乎所有的数据测试类型。

接口数据监听和修改

js
await page.to('http://t.268xue.com/');
 await browser.on('request',(res)=>{
     // 监听页面请求
     console.log('url',res._initializer.url)
diff --git a/assets/guide_exam_apiHook.md.f20bd0b1.lean.js b/assets/guide_exam_apiHook.md.33624e22.lean.js
similarity index 99%
rename from assets/guide_exam_apiHook.md.f20bd0b1.lean.js
rename to assets/guide_exam_apiHook.md.33624e22.lean.js
index 02db5d6..0de770b 100644
--- a/assets/guide_exam_apiHook.md.f20bd0b1.lean.js
+++ b/assets/guide_exam_apiHook.md.33624e22.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"接口数据测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/apiHook.md","filePath":"guide/exam/apiHook.md","lastUpdated":1690977245000}'),o={name:"guide/exam/apiHook.md"},p=l(`

接口数据测试

YinTao 内置强大的接口模块,可以满足日常几乎所有的数据测试类型。

接口数据监听和修改

js
await page.to('http://t.268xue.com/');
+import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"接口数据测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/apiHook.md","filePath":"guide/exam/apiHook.md","lastUpdated":1691029002000}'),o={name:"guide/exam/apiHook.md"},p=l(`

接口数据测试

YinTao 内置强大的接口模块,可以满足日常几乎所有的数据测试类型。

接口数据监听和修改

js
await page.to('http://t.268xue.com/');
 await browser.on('request',(res)=>{
     // 监听页面请求
     console.log('url',res._initializer.url)
diff --git a/assets/guide_exam_baseOpt.md.80283b48.js b/assets/guide_exam_baseOpt.md.ff34b73a.js
similarity index 99%
rename from assets/guide_exam_baseOpt.md.80283b48.js
rename to assets/guide_exam_baseOpt.md.ff34b73a.js
index d06a750..991302b 100644
--- a/assets/guide_exam_baseOpt.md.80283b48.js
+++ b/assets/guide_exam_baseOpt.md.ff34b73a.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const i=JSON.parse('{"title":"常规操作流程示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/baseOpt.md","filePath":"guide/exam/baseOpt.md","lastUpdated":1690977245000}'),o={name:"guide/exam/baseOpt.md"},p=l(`

常规操作流程示例

js
const homePage = "https://4399.com" // 定义变量
+import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const i=JSON.parse('{"title":"常规操作流程示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/baseOpt.md","filePath":"guide/exam/baseOpt.md","lastUpdated":1691029002000}'),o={name:"guide/exam/baseOpt.md"},p=l(`

常规操作流程示例

js
const homePage = "https://4399.com" // 定义变量
 await page.create(homePage) // 使用变量打开页面
 await sleep(1000) // 固定等待
 await page.to(\`https://baidu.com\`) // 切换页面
diff --git a/assets/guide_exam_baseOpt.md.80283b48.lean.js b/assets/guide_exam_baseOpt.md.ff34b73a.lean.js
similarity index 99%
rename from assets/guide_exam_baseOpt.md.80283b48.lean.js
rename to assets/guide_exam_baseOpt.md.ff34b73a.lean.js
index d06a750..991302b 100644
--- a/assets/guide_exam_baseOpt.md.80283b48.lean.js
+++ b/assets/guide_exam_baseOpt.md.ff34b73a.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const i=JSON.parse('{"title":"常规操作流程示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/baseOpt.md","filePath":"guide/exam/baseOpt.md","lastUpdated":1690977245000}'),o={name:"guide/exam/baseOpt.md"},p=l(`

常规操作流程示例

js
const homePage = "https://4399.com" // 定义变量
+import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const i=JSON.parse('{"title":"常规操作流程示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/baseOpt.md","filePath":"guide/exam/baseOpt.md","lastUpdated":1691029002000}'),o={name:"guide/exam/baseOpt.md"},p=l(`

常规操作流程示例

js
const homePage = "https://4399.com" // 定义变量
 await page.create(homePage) // 使用变量打开页面
 await sleep(1000) // 固定等待
 await page.to(\`https://baidu.com\`) // 切换页面
diff --git a/assets/guide_exam_mobile.md.caef7d8e.js b/assets/guide_exam_mobile.md.9533b05a.js
similarity index 98%
rename from assets/guide_exam_mobile.md.caef7d8e.js
rename to assets/guide_exam_mobile.md.9533b05a.js
index c9234e3..30dcf6b 100644
--- a/assets/guide_exam_mobile.md.caef7d8e.js
+++ b/assets/guide_exam_mobile.md.9533b05a.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"移动端H5页面测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/mobile.md","filePath":"guide/exam/mobile.md","lastUpdated":1690977245000}'),o={name:"guide/exam/mobile.md"},p=l(`

移动端H5页面测试

js
// 使用移动版百度搜索京东
+import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"移动端H5页面测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/mobile.md","filePath":"guide/exam/mobile.md","lastUpdated":1691029002000}'),o={name:"guide/exam/mobile.md"},p=l(`

移动端H5页面测试

js
// 使用移动版百度搜索京东
 await page.setDevice('iPhone 11')
 await page.to(\`https://baidu.com\`)
 await dom.fill('label',"京东");
diff --git a/assets/guide_exam_mobile.md.caef7d8e.lean.js b/assets/guide_exam_mobile.md.9533b05a.lean.js
similarity index 98%
rename from assets/guide_exam_mobile.md.caef7d8e.lean.js
rename to assets/guide_exam_mobile.md.9533b05a.lean.js
index c9234e3..30dcf6b 100644
--- a/assets/guide_exam_mobile.md.caef7d8e.lean.js
+++ b/assets/guide_exam_mobile.md.9533b05a.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"移动端H5页面测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/mobile.md","filePath":"guide/exam/mobile.md","lastUpdated":1690977245000}'),o={name:"guide/exam/mobile.md"},p=l(`

移动端H5页面测试

js
// 使用移动版百度搜索京东
+import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const C=JSON.parse('{"title":"移动端H5页面测试","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/mobile.md","filePath":"guide/exam/mobile.md","lastUpdated":1691029002000}'),o={name:"guide/exam/mobile.md"},p=l(`

移动端H5页面测试

js
// 使用移动版百度搜索京东
 await page.setDevice('iPhone 11')
 await page.to(\`https://baidu.com\`)
 await dom.fill('label',"京东");
diff --git a/assets/guide_exam_modifyDate.md.f05a7fcf.js b/assets/guide_exam_modifyDate.md.650b6d7b.js
similarity index 99%
rename from assets/guide_exam_modifyDate.md.f05a7fcf.js
rename to assets/guide_exam_modifyDate.md.650b6d7b.js
index dd3ff72..4135d25 100644
--- a/assets/guide_exam_modifyDate.md.f05a7fcf.js
+++ b/assets/guide_exam_modifyDate.md.650b6d7b.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const o="/assets/modifyDate.a6b50964.gif",d=JSON.parse('{"title":"Element日期组件获取当前日期","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/modifyDate.md","filePath":"guide/exam/modifyDate.md","lastUpdated":1690977245000}'),p={name:"guide/exam/modifyDate.md"},e=l(`

Element日期组件获取当前日期

yintao 引擎支持插入js代码运行,例如在选择日期控件时,编写获取当前日期js代码,即可解决因选择固定日期导致用例执行失败的情况。

请求示例:

js
//打开Element日期组件
+import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const o="/assets/modifyDate.a6b50964.gif",d=JSON.parse('{"title":"Element日期组件获取当前日期","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/modifyDate.md","filePath":"guide/exam/modifyDate.md","lastUpdated":1691029002000}'),p={name:"guide/exam/modifyDate.md"},e=l(`

Element日期组件获取当前日期

yintao 引擎支持插入js代码运行,例如在选择日期控件时,编写获取当前日期js代码,即可解决因选择固定日期导致用例执行失败的情况。

请求示例:

js
//打开Element日期组件
   await page.create(\`https://element.eleme.cn/#/zh-CN/component/date-picker\`)
   await sleep(1000)
   //js获取当前日期
diff --git a/assets/guide_exam_modifyDate.md.f05a7fcf.lean.js b/assets/guide_exam_modifyDate.md.650b6d7b.lean.js
similarity index 99%
rename from assets/guide_exam_modifyDate.md.f05a7fcf.lean.js
rename to assets/guide_exam_modifyDate.md.650b6d7b.lean.js
index dd3ff72..4135d25 100644
--- a/assets/guide_exam_modifyDate.md.f05a7fcf.lean.js
+++ b/assets/guide_exam_modifyDate.md.650b6d7b.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const o="/assets/modifyDate.a6b50964.gif",d=JSON.parse('{"title":"Element日期组件获取当前日期","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/modifyDate.md","filePath":"guide/exam/modifyDate.md","lastUpdated":1690977245000}'),p={name:"guide/exam/modifyDate.md"},e=l(`

Element日期组件获取当前日期

yintao 引擎支持插入js代码运行,例如在选择日期控件时,编写获取当前日期js代码,即可解决因选择固定日期导致用例执行失败的情况。

请求示例:

js
//打开Element日期组件
+import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const o="/assets/modifyDate.a6b50964.gif",d=JSON.parse('{"title":"Element日期组件获取当前日期","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/modifyDate.md","filePath":"guide/exam/modifyDate.md","lastUpdated":1691029002000}'),p={name:"guide/exam/modifyDate.md"},e=l(`

Element日期组件获取当前日期

yintao 引擎支持插入js代码运行,例如在选择日期控件时,编写获取当前日期js代码,即可解决因选择固定日期导致用例执行失败的情况。

请求示例:

js
//打开Element日期组件
   await page.create(\`https://element.eleme.cn/#/zh-CN/component/date-picker\`)
   await sleep(1000)
   //js获取当前日期
diff --git a/assets/guide_exam_select.md.db8ddc39.js b/assets/guide_exam_select.md.1d8ecee7.js
similarity index 99%
rename from assets/guide_exam_select.md.db8ddc39.js
rename to assets/guide_exam_select.md.1d8ecee7.js
index 7a9064f..eedcccf 100644
--- a/assets/guide_exam_select.md.db8ddc39.js
+++ b/assets/guide_exam_select.md.1d8ecee7.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const e="/assets/find_element.1a2e8b50.png",u=JSON.parse('{"title":"选择器进阶","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/select.md","filePath":"guide/exam/select.md","lastUpdated":1690977245000}'),t={name:"guide/exam/select.md"},o=l('

选择器进阶

ui测试中最重要的内容是进行稳定的元素定位,想要做好这部分工作,需要一些基础的前端功底,了解基本的xml的理论知识。 以下内容默认用户已经看完啦xml基础知识的前提

页面结构和定位调试

在讲解之前需要用户学会打开chrome调试工具, 当用户打开调试工具后在最上方选择element即可对页面的xml层级元素进行调试啦。

在调试工具页面中按下ctrl + f 将会出现一个输入框,在输入框输入标准选择器(xpath or css selector),如果有匹配元素将会高亮显示, 通过查看高亮元素即可,确定定位方式是否准确。

xpath 选择器

很多人对xpath可能并不陌生,但大多只了解xpath的基础定位方式,例如全路径定位/html/body/div/p/span 其实xpath支持很多定位方式,模糊以及动态定位,且编写,测试相对容易,因此重点推荐使用

以下理解需要xpath基础,不了解的可以先行学习

shell
//label[text()="活动名称"]    # 根据文本内容匹配元素
+import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const e="/assets/find_element.1a2e8b50.png",u=JSON.parse('{"title":"选择器进阶","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/select.md","filePath":"guide/exam/select.md","lastUpdated":1691029002000}'),t={name:"guide/exam/select.md"},o=l('

选择器进阶

ui测试中最重要的内容是进行稳定的元素定位,想要做好这部分工作,需要一些基础的前端功底,了解基本的xml的理论知识。 以下内容默认用户已经看完啦xml基础知识的前提

页面结构和定位调试

在讲解之前需要用户学会打开chrome调试工具, 当用户打开调试工具后在最上方选择element即可对页面的xml层级元素进行调试啦。

在调试工具页面中按下ctrl + f 将会出现一个输入框,在输入框输入标准选择器(xpath or css selector),如果有匹配元素将会高亮显示, 通过查看高亮元素即可,确定定位方式是否准确。

xpath 选择器

很多人对xpath可能并不陌生,但大多只了解xpath的基础定位方式,例如全路径定位/html/body/div/p/span 其实xpath支持很多定位方式,模糊以及动态定位,且编写,测试相对容易,因此重点推荐使用

以下理解需要xpath基础,不了解的可以先行学习

shell
//label[text()="活动名称"]    # 根据文本内容匹配元素
 
 //label[string()="活动名称"]    # 根据包含内容匹配子元素- 容易匹配多个
 
diff --git a/assets/guide_exam_select.md.db8ddc39.lean.js b/assets/guide_exam_select.md.1d8ecee7.lean.js
similarity index 99%
rename from assets/guide_exam_select.md.db8ddc39.lean.js
rename to assets/guide_exam_select.md.1d8ecee7.lean.js
index 7a9064f..eedcccf 100644
--- a/assets/guide_exam_select.md.db8ddc39.lean.js
+++ b/assets/guide_exam_select.md.1d8ecee7.lean.js
@@ -1,4 +1,4 @@
-import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const e="/assets/find_element.1a2e8b50.png",u=JSON.parse('{"title":"选择器进阶","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/select.md","filePath":"guide/exam/select.md","lastUpdated":1690977245000}'),t={name:"guide/exam/select.md"},o=l('

选择器进阶

ui测试中最重要的内容是进行稳定的元素定位,想要做好这部分工作,需要一些基础的前端功底,了解基本的xml的理论知识。 以下内容默认用户已经看完啦xml基础知识的前提

页面结构和定位调试

在讲解之前需要用户学会打开chrome调试工具, 当用户打开调试工具后在最上方选择element即可对页面的xml层级元素进行调试啦。

在调试工具页面中按下ctrl + f 将会出现一个输入框,在输入框输入标准选择器(xpath or css selector),如果有匹配元素将会高亮显示, 通过查看高亮元素即可,确定定位方式是否准确。

xpath 选择器

很多人对xpath可能并不陌生,但大多只了解xpath的基础定位方式,例如全路径定位/html/body/div/p/span 其实xpath支持很多定位方式,模糊以及动态定位,且编写,测试相对容易,因此重点推荐使用

以下理解需要xpath基础,不了解的可以先行学习

shell
//label[text()="活动名称"]    # 根据文本内容匹配元素
+import{_ as s,v as a,b as n,R as l}from"./chunks/framework.caa0fbaf.js";const e="/assets/find_element.1a2e8b50.png",u=JSON.parse('{"title":"选择器进阶","description":"","frontmatter":{},"headers":[],"relativePath":"guide/exam/select.md","filePath":"guide/exam/select.md","lastUpdated":1691029002000}'),t={name:"guide/exam/select.md"},o=l('

选择器进阶

ui测试中最重要的内容是进行稳定的元素定位,想要做好这部分工作,需要一些基础的前端功底,了解基本的xml的理论知识。 以下内容默认用户已经看完啦xml基础知识的前提

页面结构和定位调试

在讲解之前需要用户学会打开chrome调试工具, 当用户打开调试工具后在最上方选择element即可对页面的xml层级元素进行调试啦。

在调试工具页面中按下ctrl + f 将会出现一个输入框,在输入框输入标准选择器(xpath or css selector),如果有匹配元素将会高亮显示, 通过查看高亮元素即可,确定定位方式是否准确。

xpath 选择器

很多人对xpath可能并不陌生,但大多只了解xpath的基础定位方式,例如全路径定位/html/body/div/p/span 其实xpath支持很多定位方式,模糊以及动态定位,且编写,测试相对容易,因此重点推荐使用

以下理解需要xpath基础,不了解的可以先行学习

shell
//label[text()="活动名称"]    # 根据文本内容匹配元素
 
 //label[string()="活动名称"]    # 根据包含内容匹配子元素- 容易匹配多个
 
diff --git a/assets/guide_introduce_download.md.a16e0d31.js b/assets/guide_introduce_download.md.10ead82a.js
similarity index 98%
rename from assets/guide_introduce_download.md.a16e0d31.js
rename to assets/guide_introduce_download.md.10ead82a.js
index 326f203..4425f0b 100644
--- a/assets/guide_introduce_download.md.a16e0d31.js
+++ b/assets/guide_introduce_download.md.10ead82a.js
@@ -1 +1 @@
-import{_ as i,v as t,b as d,F as e,X as r,R as a}from"./chunks/framework.caa0fbaf.js";const _=JSON.parse('{"title":"下载","description":"","frontmatter":{"version":"2.0.1","editLink":true},"headers":[],"relativePath":"guide/introduce/download.md","filePath":"guide/introduce/download.md","lastUpdated":1690977245000}'),l={name:"guide/introduce/download.md"},s=a('

下载

介绍

YinTao 提供安装包,双击即可完整一键下载。

下载地址

',4),n=["href"],c=["href"],p=a('

历史版本下载

更新公告

v2.0.1版本更新:

  1. 修复pago.to未重制执行上下文问题
  2. page.screenshot 命令调整当输入未文件名称时(例:"nihao.jpg"),自动存放至临时目录中,以保障跨终端兼容。

v2.0.0版本更新(重大更新):

  1. 底层架构重大重组(不影响历史脚本执行)

v1.1.7版本更新:

  1. 新增page.hasText指令,用于快速检测页面文本的内容
  2. 调整page.setBrowserCofing 优先级为顺序优先级,更易理解。
  3. 优化dom.exist 已支持timeout
  4. 修复程序在winodws中,长脚本导致无法执行的问题。
  5. 增加dragTo 指令,方便实现拖拽

v1.1.6版本更新:

  1. 修复实时日志标识问题,回复实时日志展示功能。

v1.1.5版本更新:

  1. 增加追踪功能..
  2. 增加元素截图dom.screenshot指令,优化page.screenshot 实现方式
  3. 添加env环境变量读取, 通过env变量使用
  4. 增加ai错误堆栈指导,协助定位问题。
  5. 历史部分bug修复..
',12);function h(o,b,m,u,g,f){return t(),d("div",null,[s,e("p",null,[e("a",{style:{display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","":"box-sizing: border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/cherry-"+o.$frontmatter.version+".dmg"},"YinTao-"+r(o.$frontmatter.version)+" MAC下载",9,n)]),e("p",null,[e("a",{style:{"margin-top":"0.2rem",display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","box-sizing":"border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/cherrySetup-"+o.$frontmatter.version+".exe"},"YinTao-"+r(o.$frontmatter.version)+" WINDOW下载",9,c)]),p])}const x=i(l,[["render",h]]);export{_ as __pageData,x as default}; +import{_ as i,v as t,b as d,F as e,X as r,R as a}from"./chunks/framework.caa0fbaf.js";const _=JSON.parse('{"title":"下载","description":"","frontmatter":{"version":"2.0.1","editLink":true},"headers":[],"relativePath":"guide/introduce/download.md","filePath":"guide/introduce/download.md","lastUpdated":1691029002000}'),l={name:"guide/introduce/download.md"},s=a('

下载

介绍

YinTao 提供安装包,双击即可完整一键下载。

下载地址

',4),n=["href"],c=["href"],p=a('

历史版本下载

更新公告

v2.0.1版本更新:

  1. 修复pago.to未重制执行上下文问题
  2. page.screenshot 命令调整当输入未文件名称时(例:"nihao.jpg"),自动存放至临时目录中,以保障跨终端兼容。

v2.0.0版本更新(重大更新):

  1. 底层架构重大重组(不影响历史脚本执行)

v1.1.7版本更新:

  1. 新增page.hasText指令,用于快速检测页面文本的内容
  2. 调整page.setBrowserCofing 优先级为顺序优先级,更易理解。
  3. 优化dom.exist 已支持timeout
  4. 修复程序在winodws中,长脚本导致无法执行的问题。
  5. 增加dragTo 指令,方便实现拖拽

v1.1.6版本更新:

  1. 修复实时日志标识问题,回复实时日志展示功能。

v1.1.5版本更新:

  1. 增加追踪功能..
  2. 增加元素截图dom.screenshot指令,优化page.screenshot 实现方式
  3. 添加env环境变量读取, 通过env变量使用
  4. 增加ai错误堆栈指导,协助定位问题。
  5. 历史部分bug修复..
',12);function h(o,b,m,u,g,f){return t(),d("div",null,[s,e("p",null,[e("a",{style:{display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","":"box-sizing: border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/cherry-"+o.$frontmatter.version+".dmg"},"YinTao-"+r(o.$frontmatter.version)+" MAC下载",9,n)]),e("p",null,[e("a",{style:{"margin-top":"0.2rem",display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","box-sizing":"border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/cherrySetup-"+o.$frontmatter.version+".exe"},"YinTao-"+r(o.$frontmatter.version)+" WINDOW下载",9,c)]),p])}const x=i(l,[["render",h]]);export{_ as __pageData,x as default}; diff --git a/assets/guide_introduce_download.md.a16e0d31.lean.js b/assets/guide_introduce_download.md.10ead82a.lean.js similarity index 98% rename from assets/guide_introduce_download.md.a16e0d31.lean.js rename to assets/guide_introduce_download.md.10ead82a.lean.js index 326f203..4425f0b 100644 --- a/assets/guide_introduce_download.md.a16e0d31.lean.js +++ b/assets/guide_introduce_download.md.10ead82a.lean.js @@ -1 +1 @@ -import{_ as i,v as t,b as d,F as e,X as r,R as a}from"./chunks/framework.caa0fbaf.js";const _=JSON.parse('{"title":"下载","description":"","frontmatter":{"version":"2.0.1","editLink":true},"headers":[],"relativePath":"guide/introduce/download.md","filePath":"guide/introduce/download.md","lastUpdated":1690977245000}'),l={name:"guide/introduce/download.md"},s=a('

下载

介绍

YinTao 提供安装包,双击即可完整一键下载。

下载地址

',4),n=["href"],c=["href"],p=a('

历史版本下载

更新公告

v2.0.1版本更新:

  1. 修复pago.to未重制执行上下文问题
  2. page.screenshot 命令调整当输入未文件名称时(例:"nihao.jpg"),自动存放至临时目录中,以保障跨终端兼容。

v2.0.0版本更新(重大更新):

  1. 底层架构重大重组(不影响历史脚本执行)

v1.1.7版本更新:

  1. 新增page.hasText指令,用于快速检测页面文本的内容
  2. 调整page.setBrowserCofing 优先级为顺序优先级,更易理解。
  3. 优化dom.exist 已支持timeout
  4. 修复程序在winodws中,长脚本导致无法执行的问题。
  5. 增加dragTo 指令,方便实现拖拽

v1.1.6版本更新:

  1. 修复实时日志标识问题,回复实时日志展示功能。

v1.1.5版本更新:

  1. 增加追踪功能..
  2. 增加元素截图dom.screenshot指令,优化page.screenshot 实现方式
  3. 添加env环境变量读取, 通过env变量使用
  4. 增加ai错误堆栈指导,协助定位问题。
  5. 历史部分bug修复..
',12);function h(o,b,m,u,g,f){return t(),d("div",null,[s,e("p",null,[e("a",{style:{display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","":"box-sizing: border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/cherry-"+o.$frontmatter.version+".dmg"},"YinTao-"+r(o.$frontmatter.version)+" MAC下载",9,n)]),e("p",null,[e("a",{style:{"margin-top":"0.2rem",display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","box-sizing":"border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/cherrySetup-"+o.$frontmatter.version+".exe"},"YinTao-"+r(o.$frontmatter.version)+" WINDOW下载",9,c)]),p])}const x=i(l,[["render",h]]);export{_ as __pageData,x as default}; +import{_ as i,v as t,b as d,F as e,X as r,R as a}from"./chunks/framework.caa0fbaf.js";const _=JSON.parse('{"title":"下载","description":"","frontmatter":{"version":"2.0.1","editLink":true},"headers":[],"relativePath":"guide/introduce/download.md","filePath":"guide/introduce/download.md","lastUpdated":1691029002000}'),l={name:"guide/introduce/download.md"},s=a('

下载

介绍

YinTao 提供安装包,双击即可完整一键下载。

下载地址

',4),n=["href"],c=["href"],p=a('

历史版本下载

更新公告

v2.0.1版本更新:

  1. 修复pago.to未重制执行上下文问题
  2. page.screenshot 命令调整当输入未文件名称时(例:"nihao.jpg"),自动存放至临时目录中,以保障跨终端兼容。

v2.0.0版本更新(重大更新):

  1. 底层架构重大重组(不影响历史脚本执行)

v1.1.7版本更新:

  1. 新增page.hasText指令,用于快速检测页面文本的内容
  2. 调整page.setBrowserCofing 优先级为顺序优先级,更易理解。
  3. 优化dom.exist 已支持timeout
  4. 修复程序在winodws中,长脚本导致无法执行的问题。
  5. 增加dragTo 指令,方便实现拖拽

v1.1.6版本更新:

  1. 修复实时日志标识问题,回复实时日志展示功能。

v1.1.5版本更新:

  1. 增加追踪功能..
  2. 增加元素截图dom.screenshot指令,优化page.screenshot 实现方式
  3. 添加env环境变量读取, 通过env变量使用
  4. 增加ai错误堆栈指导,协助定位问题。
  5. 历史部分bug修复..
',12);function h(o,b,m,u,g,f){return t(),d("div",null,[s,e("p",null,[e("a",{style:{display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","":"box-sizing: border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/cherry-"+o.$frontmatter.version+".dmg"},"YinTao-"+r(o.$frontmatter.version)+" MAC下载",9,n)]),e("p",null,[e("a",{style:{"margin-top":"0.2rem",display:"inline-block","font-size":"1rem",color:"rgb(255, 255, 255)","background-color":"rgb(62, 175, 124)",padding:"0.4rem 1.2rem","border-radius":"4px",transition:"background-color 0.1s ease 0s","box-sizing":"border-box","border-bottom":"1px solid rgb(56, 157, 112)"},href:"https://storage.jd.com/assert/cherrySetup-"+o.$frontmatter.version+".exe"},"YinTao-"+r(o.$frontmatter.version)+" WINDOW下载",9,c)]),p])}const x=i(l,[["render",h]]);export{_ as __pageData,x as default}; diff --git a/assets/guide_introduce_history.md.c0a9f5cf.js b/assets/guide_introduce_history.md.6d909cd6.js similarity index 94% rename from assets/guide_introduce_history.md.c0a9f5cf.js rename to assets/guide_introduce_history.md.6d909cd6.js index 3003b6f..f277a3b 100644 --- a/assets/guide_introduce_history.md.c0a9f5cf.js +++ b/assets/guide_introduce_history.md.6d909cd6.js @@ -1 +1 @@ -import{v as n,b as r,m as d,n as i,F as e,L as a,X as t,B as c}from"./chunks/framework.caa0fbaf.js";const l=e("h1",{id:"历史版本",tabindex:"-1"},[a("历史版本 "),e("a",{class:"header-anchor",href:"#历史版本","aria-label":'Permalink to "历史版本"'},"​")],-1),h={key:0},_=e("span",null,"版本描述:",-1),u=e("span",null,"win系统:",-1),v=["href"],p=e("span",null,"mac系统:",-1),m=["href"],j=JSON.parse('{"title":"历史版本","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/history.md","filePath":"guide/introduce/history.md","lastUpdated":1690977245000}'),f={name:"guide/introduce/history.md"},P=Object.assign(f,{setup(g){const o=[{desc:"",version:"2.0.4"},{desc:"",version:"2.0.2"},{desc:"",version:"2.0.0"},{desc:"deepTest录制推荐版本",version:"1.1.7"}];return(y,b)=>(n(),r("div",null,[l,(n(),r(d,null,i(o,s=>e("div",null,[e("h3",null,"v"+t(s.version),1),s.desc?(n(),r("div",h,[_,a(),e("i",null,t(s.desc),1)])):c("",!0),u,e("a",{href:`http://storage.jd.local/assert/cherrySetup-${s.version}.exe`},"YinTao-"+t(s.version)+".exe",9,v),e("div",null,[p,e("a",{href:`http://storage.jd.local/assert/cherry-${s.version}.dmg`},"YinTao-"+t(s.version)+".dmg",9,m)])])),64))]))}});export{j as __pageData,P as default}; +import{v as n,b as r,m as d,n as i,F as e,L as a,X as t,B as c}from"./chunks/framework.caa0fbaf.js";const l=e("h1",{id:"历史版本",tabindex:"-1"},[a("历史版本 "),e("a",{class:"header-anchor",href:"#历史版本","aria-label":'Permalink to "历史版本"'},"​")],-1),h={key:0},_=e("span",null,"版本描述:",-1),u=e("span",null,"win系统:",-1),v=["href"],p=e("span",null,"mac系统:",-1),m=["href"],j=JSON.parse('{"title":"历史版本","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/history.md","filePath":"guide/introduce/history.md","lastUpdated":1691029002000}'),f={name:"guide/introduce/history.md"},P=Object.assign(f,{setup(g){const o=[{desc:"",version:"2.0.4"},{desc:"",version:"2.0.2"},{desc:"",version:"2.0.0"},{desc:"deepTest录制推荐版本",version:"1.1.7"}];return(y,b)=>(n(),r("div",null,[l,(n(),r(d,null,i(o,s=>e("div",null,[e("h3",null,"v"+t(s.version),1),s.desc?(n(),r("div",h,[_,a(),e("i",null,t(s.desc),1)])):c("",!0),u,e("a",{href:`http://storage.jd.local/assert/cherrySetup-${s.version}.exe`},"YinTao-"+t(s.version)+".exe",9,v),e("div",null,[p,e("a",{href:`http://storage.jd.local/assert/cherry-${s.version}.dmg`},"YinTao-"+t(s.version)+".dmg",9,m)])])),64))]))}});export{j as __pageData,P as default}; diff --git a/assets/guide_introduce_history.md.c0a9f5cf.lean.js b/assets/guide_introduce_history.md.6d909cd6.lean.js similarity index 94% rename from assets/guide_introduce_history.md.c0a9f5cf.lean.js rename to assets/guide_introduce_history.md.6d909cd6.lean.js index 3003b6f..f277a3b 100644 --- a/assets/guide_introduce_history.md.c0a9f5cf.lean.js +++ b/assets/guide_introduce_history.md.6d909cd6.lean.js @@ -1 +1 @@ -import{v as n,b as r,m as d,n as i,F as e,L as a,X as t,B as c}from"./chunks/framework.caa0fbaf.js";const l=e("h1",{id:"历史版本",tabindex:"-1"},[a("历史版本 "),e("a",{class:"header-anchor",href:"#历史版本","aria-label":'Permalink to "历史版本"'},"​")],-1),h={key:0},_=e("span",null,"版本描述:",-1),u=e("span",null,"win系统:",-1),v=["href"],p=e("span",null,"mac系统:",-1),m=["href"],j=JSON.parse('{"title":"历史版本","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/history.md","filePath":"guide/introduce/history.md","lastUpdated":1690977245000}'),f={name:"guide/introduce/history.md"},P=Object.assign(f,{setup(g){const o=[{desc:"",version:"2.0.4"},{desc:"",version:"2.0.2"},{desc:"",version:"2.0.0"},{desc:"deepTest录制推荐版本",version:"1.1.7"}];return(y,b)=>(n(),r("div",null,[l,(n(),r(d,null,i(o,s=>e("div",null,[e("h3",null,"v"+t(s.version),1),s.desc?(n(),r("div",h,[_,a(),e("i",null,t(s.desc),1)])):c("",!0),u,e("a",{href:`http://storage.jd.local/assert/cherrySetup-${s.version}.exe`},"YinTao-"+t(s.version)+".exe",9,v),e("div",null,[p,e("a",{href:`http://storage.jd.local/assert/cherry-${s.version}.dmg`},"YinTao-"+t(s.version)+".dmg",9,m)])])),64))]))}});export{j as __pageData,P as default}; +import{v as n,b as r,m as d,n as i,F as e,L as a,X as t,B as c}from"./chunks/framework.caa0fbaf.js";const l=e("h1",{id:"历史版本",tabindex:"-1"},[a("历史版本 "),e("a",{class:"header-anchor",href:"#历史版本","aria-label":'Permalink to "历史版本"'},"​")],-1),h={key:0},_=e("span",null,"版本描述:",-1),u=e("span",null,"win系统:",-1),v=["href"],p=e("span",null,"mac系统:",-1),m=["href"],j=JSON.parse('{"title":"历史版本","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/history.md","filePath":"guide/introduce/history.md","lastUpdated":1691029002000}'),f={name:"guide/introduce/history.md"},P=Object.assign(f,{setup(g){const o=[{desc:"",version:"2.0.4"},{desc:"",version:"2.0.2"},{desc:"",version:"2.0.0"},{desc:"deepTest录制推荐版本",version:"1.1.7"}];return(y,b)=>(n(),r("div",null,[l,(n(),r(d,null,i(o,s=>e("div",null,[e("h3",null,"v"+t(s.version),1),s.desc?(n(),r("div",h,[_,a(),e("i",null,t(s.desc),1)])):c("",!0),u,e("a",{href:`http://storage.jd.local/assert/cherrySetup-${s.version}.exe`},"YinTao-"+t(s.version)+".exe",9,v),e("div",null,[p,e("a",{href:`http://storage.jd.local/assert/cherry-${s.version}.dmg`},"YinTao-"+t(s.version)+".dmg",9,m)])])),64))]))}});export{j as __pageData,P as default}; diff --git a/assets/guide_introduce_introduce.md.d6e44e18.js b/assets/guide_introduce_introduce.md.f044e433.js similarity index 97% rename from assets/guide_introduce_introduce.md.d6e44e18.js rename to assets/guide_introduce_introduce.md.f044e433.js index bf061d9..44b3306 100644 --- a/assets/guide_introduce_introduce.md.d6e44e18.js +++ b/assets/guide_introduce_introduce.md.f044e433.js @@ -1 +1 @@ -import{_ as e,v as a,b as r,R as o}from"./chunks/framework.caa0fbaf.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/introduce.md","filePath":"guide/introduce/introduce.md","lastUpdated":1690977245000}'),t={name:"guide/introduce/introduce.md"},i=o('

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

',11),n=[i];function d(c,l,h,s,u,p){return a(),r("div",null,n)}const _=e(t,[["render",d]]);export{f as __pageData,_ as default}; +import{_ as e,v as a,b as r,R as o}from"./chunks/framework.caa0fbaf.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/introduce.md","filePath":"guide/introduce/introduce.md","lastUpdated":1691029002000}'),t={name:"guide/introduce/introduce.md"},i=o('

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

',11),n=[i];function d(c,l,h,s,u,p){return a(),r("div",null,n)}const _=e(t,[["render",d]]);export{f as __pageData,_ as default}; diff --git a/assets/guide_introduce_introduce.md.d6e44e18.lean.js b/assets/guide_introduce_introduce.md.f044e433.lean.js similarity index 97% rename from assets/guide_introduce_introduce.md.d6e44e18.lean.js rename to assets/guide_introduce_introduce.md.f044e433.lean.js index bf061d9..44b3306 100644 --- a/assets/guide_introduce_introduce.md.d6e44e18.lean.js +++ b/assets/guide_introduce_introduce.md.f044e433.lean.js @@ -1 +1 @@ -import{_ as e,v as a,b as r,R as o}from"./chunks/framework.caa0fbaf.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/introduce.md","filePath":"guide/introduce/introduce.md","lastUpdated":1690977245000}'),t={name:"guide/introduce/introduce.md"},i=o('

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

',11),n=[i];function d(c,l,h,s,u,p){return a(),r("div",null,n)}const _=e(t,[["render",d]]);export{f as __pageData,_ as default}; +import{_ as e,v as a,b as r,R as o}from"./chunks/framework.caa0fbaf.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduce/introduce.md","filePath":"guide/introduce/introduce.md","lastUpdated":1691029002000}'),t={name:"guide/introduce/introduce.md"},i=o('

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

',11),n=[i];function d(c,l,h,s,u,p){return a(),r("div",null,n)}const _=e(t,[["render",d]]);export{f as __pageData,_ as default}; diff --git a/assets/index.md.8b1c29b0.js b/assets/index.md.3ac5268a.js similarity index 81% rename from assets/index.md.8b1c29b0.js rename to assets/index.md.3ac5268a.js index 30eedcf..9ebf8ea 100644 --- a/assets/index.md.8b1c29b0.js +++ b/assets/index.md.3ac5268a.js @@ -1 +1 @@ -import{_ as a,v as e,b as r,R as o}from"./chunks/framework.caa0fbaf.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1690977245000}'),t={name:"index.md"},i=o('

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

',11),n=[i];function d(l,h,s,c,p,u){return e(),r("div",null,n)}const _=a(t,[["render",d]]);export{f as __pageData,_ as default}; +import{_ as a,v as e,b as r,R as t}from"./chunks/framework.caa0fbaf.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1691029002000}'),o={name:"index.md"},i=t('

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

',11),n=[i];function d(l,h,s,c,p,u){return e(),r("div",null,n)}const _=a(o,[["render",d]]);export{f as __pageData,_ as default}; diff --git a/assets/index.md.8b1c29b0.lean.js b/assets/index.md.3ac5268a.lean.js similarity index 81% rename from assets/index.md.8b1c29b0.lean.js rename to assets/index.md.3ac5268a.lean.js index 30eedcf..9ebf8ea 100644 --- a/assets/index.md.8b1c29b0.lean.js +++ b/assets/index.md.3ac5268a.lean.js @@ -1 +1 @@ -import{_ as a,v as e,b as r,R as o}from"./chunks/framework.caa0fbaf.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1690977245000}'),t={name:"index.md"},i=o('

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

',11),n=[i];function d(l,h,s,c,p,u){return e(),r("div",null,n)}const _=a(t,[["render",d]]);export{f as __pageData,_ as default}; +import{_ as a,v as e,b as r,R as t}from"./chunks/framework.caa0fbaf.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1691029002000}'),o={name:"index.md"},i=t('

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

',11),n=[i];function d(l,h,s,c,p,u){return e(),r("div",null,n)}const _=a(o,[["render",d]]);export{f as __pageData,_ as default}; diff --git a/guide/api/api.html b/guide/api/api.html index b8d105b..ab9bac2 100644 --- a/guide/api/api.html +++ b/guide/api/api.html @@ -11,13 +11,13 @@ - + -
Skip to content
On this page

OPEN-API

描述

为满足各个平台用户,以及三方用户的使用需求。chery提供了强大的开放api能力。以满足用户在不修改源码的情况下,自主完成功能接入使用。 并同时支持http,websocket两种接入协议,用户可以自行选择接入模式。更好的完成功能接入。

- +
Skip to content
On this page

OPEN-API

描述

为满足各个平台用户,以及三方用户的使用需求。chery提供了强大的开放api能力。以满足用户在不修改源码的情况下,自主完成功能接入使用。 并同时支持http,websocket两种接入协议,用户可以自行选择接入模式。更好的完成功能接入。

+ \ No newline at end of file diff --git a/guide/api/func.html b/guide/api/func.html index 52c1a98..ffc8f08 100644 --- a/guide/api/func.html +++ b/guide/api/func.html @@ -11,13 +11,13 @@ - + - - + + \ No newline at end of file diff --git a/guide/api/httpApi.html b/guide/api/httpApi.html index d844edb..7a4b356 100644 --- a/guide/api/httpApi.html +++ b/guide/api/httpApi.html @@ -11,7 +11,7 @@ - + @@ -57,8 +57,8 @@ "ok":1 }

退出

路径: /exit

请求方式: GET

说明: 调用后关闭YinTao

请求示例:

js
request.get("http://localhost:8777/exit")

响应示例:

js
{
   "ok":1
-}
- +}
+ \ No newline at end of file diff --git a/guide/api/instruct.html b/guide/api/instruct.html index c493607..a97ce6c 100644 --- a/guide/api/instruct.html +++ b/guide/api/instruct.html @@ -11,7 +11,7 @@ - + @@ -97,8 +97,8 @@ }catch(e){ errorSend("错误未找到点击id") } -console.log("继续往下执行")
- +console.log("继续往下执行")
+ \ No newline at end of file diff --git a/guide/api/pasteConfig.html b/guide/api/pasteConfig.html index 8e536cd..4b588cf 100644 --- a/guide/api/pasteConfig.html +++ b/guide/api/pasteConfig.html @@ -11,7 +11,7 @@ - + @@ -34,8 +34,8 @@ } }

使用兼容模式录制

json
{
     "compatibility":true
-}

全部参数,参考open-Api

- +}

全部参数,参考open-Api

+ \ No newline at end of file diff --git a/guide/api/wsApi.html b/guide/api/wsApi.html index cfddc27..e10dd40 100644 --- a/guide/api/wsApi.html +++ b/guide/api/wsApi.html @@ -11,7 +11,7 @@ - + @@ -51,8 +51,8 @@ "api": "ping" }

退出

数据格式:

json
{
   "api": "exit",
-}
- +} + \ No newline at end of file diff --git a/guide/course/step.html b/guide/course/step.html index 06f5493..53e0934 100644 --- a/guide/course/step.html +++ b/guide/course/step.html @@ -11,13 +11,13 @@ - + -
Skip to content
On this page

安装说明

Windows安装

跳转至下载页面,点击WIN下载按钮,等待下载完成后,逐一点击下一步直至安装完成。

Mac安装

跳转至下载页面,点击MAC下载按钮,等待下载完成后,拖动YinTao-drive.app进Applications即可。

安装成功校验

  • 打开桌面YinTao应用,然后打开浏览器,地址栏输入:http://localhost:8777/ping
  • 返回{"ok":1}即代表安装成功

安装问题说明

  • 无法打开软件,如上图,请在系统偏好设置->安全性与隐私页面,勾选任何来源,见下图。

  • 如上图设置页面,没有任何来源选项,请打开终端(启动器->其他->终端)
  • 输入sudo spctl --master-disable
  • 根据提示输入电脑开机密码,再次打开软件,弹窗点击打开即可

使用过程中如果你有任何的意见或者问题,欢迎反馈

- +
Skip to content
On this page

安装说明

Windows安装

跳转至下载页面,点击WIN下载按钮,等待下载完成后,逐一点击下一步直至安装完成。

Mac安装

跳转至下载页面,点击MAC下载按钮,等待下载完成后,拖动YinTao-drive.app进Applications即可。

安装成功校验

  • 打开桌面YinTao应用,然后打开浏览器,地址栏输入:http://localhost:8777/ping
  • 返回{"ok":1}即代表安装成功

安装问题说明

  • 无法打开软件,如上图,请在系统偏好设置->安全性与隐私页面,勾选任何来源,见下图。

  • 如上图设置页面,没有任何来源选项,请打开终端(启动器->其他->终端)
  • 输入sudo spctl --master-disable
  • 根据提示输入电脑开机密码,再次打开软件,弹窗点击打开即可

使用过程中如果你有任何的意见或者问题,欢迎反馈

+ \ No newline at end of file diff --git a/guide/course/trace.html b/guide/course/trace.html index 3a80274..ec3ab0d 100644 --- a/guide/course/trace.html +++ b/guide/course/trace.html @@ -11,7 +11,7 @@ - + @@ -41,8 +41,8 @@ }

远程服务需要接收zip文件,以放置在oss资源路径中。

查看追踪信息

预览追踪可以通过trace.dev进行, 如果是本地文件,可以通过选择文件的信息打开对应追踪.zip文件进行浏览

远程文件也可通过传递给trace 进行预览

js
https://trace.playwright.dev/?trace=http_url // 的方式进行
 
 // 例如:
-https://trace.playwright.dev/?trace=https://storage.jd.com/assert/nihao2.zip

点击此处在线查看跟踪效果

相关文档及资料参考

playwright-trace, chromium-trace

- +https://trace.playwright.dev/?trace=https://storage.jd.com/assert/nihao2.zip

点击此处在线查看跟踪效果

相关文档及资料参考

playwright-trace, chromium-trace

+ \ No newline at end of file diff --git a/guide/course/use.html b/guide/course/use.html index c8da975..4e9f420 100644 --- a/guide/course/use.html +++ b/guide/course/use.html @@ -11,7 +11,7 @@ - + @@ -21,8 +21,8 @@ "storage": { "id":123 } -}

- 点击上图的Send按钮,打开chrome浏览器后,即可进行脚本的录制工作。 - 录制完成后,生成的脚步代码在Response的Body内,见上图。 ### 执行脚本 - 打开postman,创建post请求,地址栏输入:`http://localhost:8777/run` - Body选择raw,格式选择JSON,内容输入如下 ```js { "script": "await page.create(`http://www.baidu.com`)\nawait page.change(0)\nawait dom.click(`#kw`)\nawait dom.set(`京东`,`#kw`)\nawait keyboard.press(`Enter`)\nawait dom.click(`(//*[string()='京东JD.COM官网 多快好省 只为品质生活'])[1]`)\nawait page.change(1)\n", "storage": "123", } ``` - postman完整回放脚本截图如下

- 点击上图的Send按钮,自动打开浏览器回放脚本。

使用过程中如果你有任何的意见或者问题,欢迎反馈。

- +}

- 点击上图的Send按钮,打开chrome浏览器后,即可进行脚本的录制工作。 - 录制完成后,生成的脚步代码在Response的Body内,见上图。 ### 执行脚本 - 打开postman,创建post请求,地址栏输入:`http://localhost:8777/run` - Body选择raw,格式选择JSON,内容输入如下 ```js { "script": "await page.create(`http://www.baidu.com`)\nawait page.change(0)\nawait dom.click(`#kw`)\nawait dom.set(`京东`,`#kw`)\nawait keyboard.press(`Enter`)\nawait dom.click(`(//*[string()='京东JD.COM官网 多快好省 只为品质生活'])[1]`)\nawait page.change(1)\n", "storage": "123", } ``` - postman完整回放脚本截图如下

- 点击上图的Send按钮,自动打开浏览器回放脚本。

使用过程中如果你有任何的意见或者问题,欢迎反馈。

+ \ No newline at end of file diff --git a/guide/data/cookie.html b/guide/data/cookie.html index e2256d8..0efb0ce 100644 --- a/guide/data/cookie.html +++ b/guide/data/cookie.html @@ -11,13 +11,13 @@ - + -
Skip to content
On this page
- +
Skip to content
On this page
+ \ No newline at end of file diff --git a/guide/data/errorCode.html b/guide/data/errorCode.html index c99d51a..405f624 100644 --- a/guide/data/errorCode.html +++ b/guide/data/errorCode.html @@ -11,13 +11,13 @@ - + -
Skip to content
On this page

错误码

定义规范

我们理想提供通俗易通的错误码管理,在http error code 补充一位并丰富内容。

前缀含义示例
^1提示信息1000
^2成功信息2000
^3警告信息3002
^4错误信息4004

错误码列表

code描述
1001录制操作被取消
2000通用success
4025代码编译错误
- +
Skip to content
On this page

错误码

定义规范

我们理想提供通俗易通的错误码管理,在http error code 补充一位并丰富内容。

前缀含义示例
^1提示信息1000
^2成功信息2000
^3警告信息3002
^4错误信息4004

错误码列表

code描述
1001录制操作被取消
2000通用success
4025代码编译错误
+ \ No newline at end of file diff --git a/guide/data/keyCode.html b/guide/data/keyCode.html index b120582..dca989f 100644 --- a/guide/data/keyCode.html +++ b/guide/data/keyCode.html @@ -11,7 +11,7 @@ - + @@ -46,8 +46,8 @@ | 'A'| 'B'| 'C'| 'D'| 'E'| 'F'| 'G'| 'H'| 'I'| 'J'| 'K'| 'L'| 'M'| 'N'| 'O'| 'P'| 'Q'   | 'R'| 'S'| 'T'| 'U'| 'V'| 'W'| 'X'| 'Y'| 'Z' | ':'| '<'| '_'| '>'| '?'| '~'| '{'| '|'| '}'| '"' -  | 'SoftLeft'| 'SoftRight'| 'Camera'| 'Call'| 'EndCall'| 'VolumeDown'| 'VolumeUp' - +  | 'SoftLeft'| 'SoftRight'| 'Camera'| 'Call'| 'EndCall'| 'VolumeDown'| 'VolumeUp' + \ No newline at end of file diff --git a/guide/ex/ex1.html b/guide/ex/ex1.html index 0a0469e..96917bd 100644 --- a/guide/ex/ex1.html +++ b/guide/ex/ex1.html @@ -11,13 +11,13 @@ - + -
Skip to content
On this page

实现原理

录制原理

  • 通过webview加载目标页面,向目标页面注入js,获取控制权。
  • 通过js监听用户的行为及操作,将监听的行为转换为匹配的语法。
  • 将录制生成的语法进行存储生成脚本文件。

脚本执行原理

  • 读取传输的脚本文件。
  • 新建一个浏览器进程并通过js解析语法转为指令,将指令分层级通过进行ipc进行传输,层级按照 浏览器>页面> iframe。
  • 具体页面拿到响应的指令,再将指令转换为具体的js脚本执行,并记录执行数据。
  • 运行完成后,将执行数据结果返回。
- +
Skip to content
On this page

实现原理

录制原理

  • 通过webview加载目标页面,向目标页面注入js,获取控制权。
  • 通过js监听用户的行为及操作,将监听的行为转换为匹配的语法。
  • 将录制生成的语法进行存储生成脚本文件。

脚本执行原理

  • 读取传输的脚本文件。
  • 新建一个浏览器进程并通过js解析语法转为指令,将指令分层级通过进行ipc进行传输,层级按照 浏览器>页面> iframe。
  • 具体页面拿到响应的指令,再将指令转换为具体的js脚本执行,并记录执行数据。
  • 运行完成后,将执行数据结果返回。
+ \ No newline at end of file diff --git a/guide/ex/ex2.html b/guide/ex/ex2.html index 6e51755..027e617 100644 --- a/guide/ex/ex2.html +++ b/guide/ex/ex2.html @@ -11,13 +11,13 @@ - + -
Skip to content
On this page

特性

上手简单

     基于录制生成准确代码,使用门槛低。

丰富底层指令支持

     开发时,我们内置了多种基础指令,足以满足90%的用户场景。

开源共享

     我们使用MIT开源协议,用户可以充分扩展满足业务需求

实时运行上下文

     为使得逻辑更通俗易懂,设计时无需用户区分上下文环境,运行时将根据页面操作自动完成转化。

- +
Skip to content
On this page

特性

上手简单

     基于录制生成准确代码,使用门槛低。

丰富底层指令支持

     开发时,我们内置了多种基础指令,足以满足90%的用户场景。

开源共享

     我们使用MIT开源协议,用户可以充分扩展满足业务需求

实时运行上下文

     为使得逻辑更通俗易懂,设计时无需用户区分上下文环境,运行时将根据页面操作自动完成转化。

+ \ No newline at end of file diff --git a/guide/exam/apiHook.html b/guide/exam/apiHook.html index 4fea5f8..8bbd3c6 100644 --- a/guide/exam/apiHook.html +++ b/guide/exam/apiHook.html @@ -11,7 +11,7 @@ - + @@ -35,8 +35,8 @@ const apiData = await axios.get('http://YinTao.jd.com/ping') console.log('apiData',apiData.data) // 获取data数据 -await sleep(2000) - +await sleep(2000) + \ No newline at end of file diff --git a/guide/exam/baseOpt.html b/guide/exam/baseOpt.html index 36b39df..9d562f1 100644 --- a/guide/exam/baseOpt.html +++ b/guide/exam/baseOpt.html @@ -11,7 +11,7 @@ - + @@ -47,8 +47,8 @@ // 截图上传 await dom.upload(`#app > div.main-cnt > div > div.el-scrollbar__wrap > div > div > div.page-component__content > section > div:nth-child(4) > div.source > div > div > div.el-upload.el-upload--text > input`,`C:\\Users\\zhouyuan11\\AppData\\Local\\Programs\\cherry_driver\\cherry_tray@2x.png`) -await sleep(1000) - +await sleep(1000) + \ No newline at end of file diff --git a/guide/exam/mobile.html b/guide/exam/mobile.html index 3046b32..d1c8c32 100644 --- a/guide/exam/mobile.html +++ b/guide/exam/mobile.html @@ -11,7 +11,7 @@ - + @@ -24,8 +24,8 @@ await sleep(2000) // 在模拟移动端点击时可能出现dom.click 点击无效情况,可使用dom.dispatchEvent代替点击 -await dom.dispatchEvent('#index-bn','click') - +await dom.dispatchEvent('#index-bn','click') + \ No newline at end of file diff --git a/guide/exam/modifyDate.html b/guide/exam/modifyDate.html index c29b293..797e89f 100644 --- a/guide/exam/modifyDate.html +++ b/guide/exam/modifyDate.html @@ -11,7 +11,7 @@ - + @@ -28,8 +28,8 @@ await dom.fill('//*[@id=\"app\"]/div[2]/div[1]/div[1]/div[1]/div[1]/div[2]/section[1]/div[1]/div[1]/div[1]/div[1]/div[1]/input[1]',nowDay) await sleep(1000) await keyboard.press(`Enter`) - await sleep(1000)

show

- + await sleep(1000)

show

+ \ No newline at end of file diff --git a/guide/exam/select.html b/guide/exam/select.html index f3fd41a..af6d233 100644 --- a/guide/exam/select.html +++ b/guide/exam/select.html @@ -11,7 +11,7 @@ - + @@ -36,8 +36,8 @@ // document.getElementsByTagName 通过标签名获取元素 // document.getElementsByClassName 通过元素属性获取 // document.querySelector(); 通过selector 选择器获取元素 -// document.getElementsByName 通过元素名称获取

想了解全部的原生定位方式可以通过查看mdn document 来学习

- +// document.getElementsByName 通过元素名称获取

想了解全部的原生定位方式可以通过查看mdn document 来学习

+ \ No newline at end of file diff --git a/guide/introduce/download.html b/guide/introduce/download.html index 1036759..a5b9e21 100644 --- a/guide/introduce/download.html +++ b/guide/introduce/download.html @@ -11,13 +11,13 @@ - + -
Skip to content
On this page

下载

介绍

YinTao 提供安装包,双击即可完整一键下载。

下载地址

YinTao-2.0.1 MAC下载

YinTao-2.0.1 WINDOW下载

历史版本下载

更新公告

v2.0.1版本更新:

  1. 修复pago.to未重制执行上下文问题
  2. page.screenshot 命令调整当输入未文件名称时(例:"nihao.jpg"),自动存放至临时目录中,以保障跨终端兼容。

v2.0.0版本更新(重大更新):

  1. 底层架构重大重组(不影响历史脚本执行)

v1.1.7版本更新:

  1. 新增page.hasText指令,用于快速检测页面文本的内容
  2. 调整page.setBrowserCofing 优先级为顺序优先级,更易理解。
  3. 优化dom.exist 已支持timeout
  4. 修复程序在winodws中,长脚本导致无法执行的问题。
  5. 增加dragTo 指令,方便实现拖拽

v1.1.6版本更新:

  1. 修复实时日志标识问题,回复实时日志展示功能。

v1.1.5版本更新:

  1. 增加追踪功能..
  2. 增加元素截图dom.screenshot指令,优化page.screenshot 实现方式
  3. 添加env环境变量读取, 通过env变量使用
  4. 增加ai错误堆栈指导,协助定位问题。
  5. 历史部分bug修复..
- +
Skip to content
On this page

下载

介绍

YinTao 提供安装包,双击即可完整一键下载。

下载地址

YinTao-2.0.1 MAC下载

YinTao-2.0.1 WINDOW下载

历史版本下载

更新公告

v2.0.1版本更新:

  1. 修复pago.to未重制执行上下文问题
  2. page.screenshot 命令调整当输入未文件名称时(例:"nihao.jpg"),自动存放至临时目录中,以保障跨终端兼容。

v2.0.0版本更新(重大更新):

  1. 底层架构重大重组(不影响历史脚本执行)

v1.1.7版本更新:

  1. 新增page.hasText指令,用于快速检测页面文本的内容
  2. 调整page.setBrowserCofing 优先级为顺序优先级,更易理解。
  3. 优化dom.exist 已支持timeout
  4. 修复程序在winodws中,长脚本导致无法执行的问题。
  5. 增加dragTo 指令,方便实现拖拽

v1.1.6版本更新:

  1. 修复实时日志标识问题,回复实时日志展示功能。

v1.1.5版本更新:

  1. 增加追踪功能..
  2. 增加元素截图dom.screenshot指令,优化page.screenshot 实现方式
  3. 添加env环境变量读取, 通过env变量使用
  4. 增加ai错误堆栈指导,协助定位问题。
  5. 历史部分bug修复..
+ \ No newline at end of file diff --git a/guide/introduce/history.html b/guide/introduce/history.html index 34e76c6..2f22ce1 100644 --- a/guide/introduce/history.html +++ b/guide/introduce/history.html @@ -11,13 +11,13 @@ - + -
Skip to content
On this page

历史版本

v2.0.4

win系统:YinTao-2.0.4.exe

v2.0.2

win系统:YinTao-2.0.2.exe

v2.0.0

win系统:YinTao-2.0.0.exe

v1.1.7

版本描述: deepTest录制推荐版本
win系统:YinTao-1.1.7.exe
- +
Skip to content
On this page

历史版本

v2.0.4

win系统:YinTao-2.0.4.exe

v2.0.2

win系统:YinTao-2.0.2.exe

v2.0.0

win系统:YinTao-2.0.0.exe

v1.1.7

版本描述: deepTest录制推荐版本
win系统:YinTao-1.1.7.exe
+ \ No newline at end of file diff --git a/guide/introduce/introduce.html b/guide/introduce/introduce.html index 5163990..7b3ffaf 100644 --- a/guide/introduce/introduce.html +++ b/guide/introduce/introduce.html @@ -11,13 +11,13 @@ - + -
Skip to content
On this page

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

- +
Skip to content
On this page

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

+ \ No newline at end of file diff --git a/hashmap.json b/hashmap.json index 07cae7c..7afc093 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"guide_api_func.md":"0d220b19","guide_api_httpapi.md":"e53718dc","guide_api_wsapi.md":"b829c86e","guide_data_keycode.md":"4cab5f31","guide_ex_ex1.md":"d385be3b","guide_data_errorcode.md":"967c1c76","guide_ex_ex2.md":"084a4867","guide_exam_apihook.md":"f20bd0b1","guide_exam_select.md":"db8ddc39","guide_exam_baseopt.md":"80283b48","guide_introduce_history.md":"c0a9f5cf","guide_introduce_download.md":"a16e0d31","guide_exam_mobile.md":"caef7d8e","guide_introduce_introduce.md":"d6e44e18","guide_exam_modifydate.md":"f05a7fcf","guide_course_step.md":"7122ee79","guide_api_pasteconfig.md":"d0a0c2ad","guide_api_instruct.md":"8f5e1103","guide_api_api.md":"96eee10f","index.md":"8b1c29b0","guide_course_trace.md":"00cbfbf7","readme.md":"43628745","guide_course_use.md":"cbdce848","guide_data_cookie.md":"8556d521"} +{"guide_api_wsapi.md":"86c543fa","readme.md":"e50ec8f2","guide_api_api.md":"decfc5b2","guide_course_step.md":"f3b2a4da","guide_course_trace.md":"aeaf97ad","guide_course_use.md":"5f12ffd6","guide_api_pasteconfig.md":"626d22c8","guide_api_httpapi.md":"57ee93f0","guide_api_instruct.md":"40e22f8c","guide_data_cookie.md":"8ba04d1d","guide_data_errorcode.md":"7c1597ff","guide_data_keycode.md":"14038dc1","index.md":"3ac5268a","guide_ex_ex1.md":"2b0cdea4","guide_exam_modifydate.md":"650b6d7b","guide_exam_apihook.md":"33624e22","guide_exam_baseopt.md":"ff34b73a","guide_api_func.md":"27f7dda4","guide_exam_select.md":"1d8ecee7","guide_introduce_history.md":"6d909cd6","guide_introduce_introduce.md":"f044e433","guide_ex_ex2.md":"4e83a04c","guide_introduce_download.md":"10ead82a","guide_exam_mobile.md":"9533b05a"} diff --git a/index.html b/index.html index f3664db..5d322ab 100644 --- a/index.html +++ b/index.html @@ -11,13 +11,13 @@ - + -
Skip to content
On this page

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

- +
Skip to content
On this page

简介

    YinTao致力于打造简单、轻量、易部署的自动化浏览器引擎。它通过简单的脚本,丰富的指令、api提供强劲可控的自动化体验。并支持用户以浏览器插件的形式自定义引擎部分功能,简单快捷的进行自动化项目开发。

立即体验

点击这里立即体验YinTao在线预览版

项目介绍

     适用于自动化框架开发、数据爬虫处理、自动化脚本辅助,专注于解决ui自动化上手难,成本高,部署复杂难以在实际项目当中落地等问题,通过结合Chromium 二次封装引擎重构开发出YinTao 达到从底层高度定制,智能判定,定制语法的自动化测试引擎。实现了批量运行,无痕启动,定时运行,智能录制,一键安装等核心功能,同时支持服务端远程部署,多语言脚本支持。

开源

     YinTao是一款开源的软件, 我们希望和用户一起分享,建设。 如果你希望它变得更好,我们需要您的加入。

  • YinTao 客户端程序,提供上级通用包装器。 YinTao
  • core 核心执行程序。 [core]
  • doc YinTao使用文档 doc

前往下载

欢迎下载体验,提出宝贵意见
更多项目请查看相关服务

+ \ No newline at end of file