設計初衷
這個框架一開始就是為了自動化而產生的,因為之前公司有瀏覽器自動化的需求。一開始的框架其實是非常簡陋的,然後因為業務已經穩定了,所以不敢做太大變更。在離職後好好的總結了一下,重新將框架重構。
有什麼用
高度封裝 Selenium
的操作,只要配置 json
就能夠實現想要的功能。提供後臺動態修改配置,為所要網站更改頁面元素快速解決。從此不用再走修改框架原始碼,上傳 git
然後拉取到線上伺服器這些繁瑣流程。為你省下更多時間喝咖啡。
架構
- 前端
vue
- 後端
flask
- 自動化
titans
目錄結構
+---abstracts // 抽象類
+---bin // 二進位制檔案
+---components // 元件
+---configs // 配置檔案
+---core // 核心邏輯
+---hooks // 鉤子
+---logs // 日誌
+---manages // 全域性管理類
+---storages // 儲存儲存位置
| \---cookies
+---utils // 通用工具
元件
│ click.py 點選操作類
│ content.py html標籤內容獲取類
│ cookie.py cookie操作類
│ for.py for迴圈流程類
│ if.py if流程類
│ iframe.py iframe操作類
│ input.py 輸入操作類
│ javascript.py javascript程式碼執行類
│ judge.py 條件判斷類
│ request.py 請求類
│ sleep.py 睡眠延時類
│ wait.py 等待事件類
│ while.py while迴圈類
│ window.py window標籤頁切換類
整體流程
如何使用?
這裡以自動化百度搜尋為例子,首先我們需要如下的配置
[
{
"component": "request",
"args": {
"url": "https://www.baidu.com"
},
"type": "browser"
},
{
"component": "input",
"args": {
"xpath": "//input[@id='kw']",
"text": "Python"
},
"type": "text"
},
{
"component": "click",
"args": {
"xpath": "//input[@id='su']"
}
},
{
"component": "sleep",
"args": {
"time": 3600
}
}
]
配置中使用{}
作為一個元件的呼叫,[]
作為一個作用域來使用。 {}
有三個基本引數:
args
配置引數type
元件使用具體方法component
所使用的元件名稱
[]
主要是作用域,用於if
, for
, while
迴圈這些有自己作用域的元件,然後在裡面呼叫{}
就可以 實現流程控制了
具體效果如下:
專案地址:
github.com/dmf-code/titans
wiki
地址:github.com/dmf-code/titans/wiki
本作品採用《CC 協議》,轉載必須註明作者和本文連結