馬寧 陳曦 陳正銘
摘要:介紹了采用Python與Selenium等實現(xiàn)自動操作重復性強且無須人工判斷的任務,讓辦公自動化進一步實現(xiàn)智能化的關鍵技術。通過一個具體案例來闡述流程自動執(zhí)行的實現(xiàn)原理與關鍵代碼,證明了使用該技術能將各類界面刷新、點擊、輸入、導出、推送等操作實現(xiàn)智能化、自動化,提升辦公生產效率。
關鍵詞:Python;辦公自動化;Selenium;智能測試;自動執(zhí)行
中圖分類號:TP301.1 文獻標識碼:A
文章編號:1009-3044(2019)32-0077-03
1概述
辦公自動化是利用計算機和網絡,將日常業(yè)務工作中信息與文件用各種平臺或軟件進行處理,最終實現(xiàn)辦公流程順利進行。辦公自動化的產生是建立在計算機信息處理技術被廣泛運用的基礎上的,在這個過程中,需要工作人員通過計算機操作將信息進行全方位的處理。使整個工作的流程都在計算機中完成。
辦公自動化減少了人為的跑動,節(jié)省了人力物力,提升了辦公的效率,通過辦公自動化里的自檢系統(tǒng),也降低了錯誤發(fā)生的概率。但其中部分業(yè)務(如服務調度業(yè)務、計量自動化業(yè)務等)必須實時不間斷處置,并且處置的操作重復性強,因實時性的要求,又需要人工守候在計算機旁,重復操作鼠標鍵盤,造成人力資源的浪費和腱鞘炎等職業(yè)病發(fā)病風險提高,同時人工操作具有一定的出錯風險,容易誤操作與遺漏。為解決上述問題,可采用自動執(zhí)行技術進行輔助操作重復性強且無須人工判斷任務,讓辦公自動化實現(xiàn)智能化。
2應用場景
大多數(shù)辦公自動化系統(tǒng)中各項業(yè)務操作是規(guī)則簡單,重復性強,實時性要求較高的工作,以我單位營銷系統(tǒng)的客服工單催辦業(yè)務為例,流程如下:
上述業(yè)務流程規(guī)則簡單,重復性強,但目前營銷系統(tǒng)未能提供自動執(zhí)行功能,需專人負責,耗時耗力。如能設計相應自動執(zhí)行軟件啟動后自行執(zhí)行,將能提高工作效率,避免遺漏。
3現(xiàn)有解決方案與不足
3.1Autolt
采用類似BASIC的程序語言,它主要工作在Windows操作系統(tǒng),通過編寫代碼來模擬鼠標和鍵盤的操作,從而達到模擬用戶在Windows操作系統(tǒng)圖形界面操作的效果,實現(xiàn)Windows的自動化操作。
3.2按鍵精靈
用于解決一些傳統(tǒng)軟件無法覆蓋的電腦問題,可用于任何有待提高工作效率的領域,例如:業(yè)務流程優(yōu)化f使用腳本優(yōu)化業(yè)務流程,提高工作效率,降低企業(yè)成本)、辦公自動化(自動處理機械枯燥的辦公室電腦操作,例如企業(yè)信息發(fā)布、報表提交、郵件整理等)、日常應用r將電腦日常應用一鍵批量操作,例如股票交易中的閃電下單、操作預警等)、軟件自動測試(模擬人工操作進行軟件測試)、網游輔助(模擬人工操作網絡游戲的人物,將玩家從游戲公司不合理的長時間操作中解脫出來)。
3.3易語言
一個我國自主開發(fā),易用的漢語編程語言,降低了廣大電腦用戶編程的門檻。易語言能充分利用操作系統(tǒng)的API,COM、DLL、OCX組件,還支持程序流程的即時可視化,能方便地開發(fā)各種自動化腳本程序,執(zhí)行效率較高。
3.4小結
上述幾種自動執(zhí)行的軟件設計技術都有一定缺陷,AutoIt和按鍵精靈雖能模擬鼠標鍵盤的操作,但無法執(zhí)行較復雜的條件判斷,也無法方便截取所使用系統(tǒng)的返回信息;易語言雖然功能強大,但是采用的庫因為常被用作開發(fā)外掛與病毒,因此有極大的安全風險。
4基于Python的流程自動執(zhí)行關鍵技術
4.1Python語言簡介
Python是一種易于學習又功能強大的編程語言。它提供了高效的高級數(shù)據(jù)結構,還有簡單有效的面向對象編程。Py-thon優(yōu)雅的語法和動態(tài)類型,以及解釋型語言的本質,使它成為多數(shù)平臺上寫腳本和快速開發(fā)應用的理想語言。Python解釋器及豐富的標準庫以源碼或機器碼的形式提供,可以免費獲取適用于各個主要系統(tǒng)平臺的版本,并可自由地分發(fā)。這個網站還包含許多免費第三方Python模塊、程序和工具以及附加文檔的發(fā)布頁面或鏈接。Python解釋器易于擴展,可以使用C或C++(或者其他可以通過c調用的語言)擴展新的功能和數(shù)據(jù)類型。Python也可用于可定制化軟件中的擴展程序語言。I1
利用Python語言、Web應用程序測試工具selenium等技術,采用模塊化設計,將上述梳理出來的工作任務流程以腳本形式實現(xiàn)智能自動化執(zhí)行,實現(xiàn)無人自動化操作;還可進一步設計執(zhí)行意外提醒、執(zhí)行日志記錄與查詢、執(zhí)行參數(shù)設置等功能。
4.2項目實施關鍵技術
4.2.1關鍵技術概述
以上述應用場景客服工單催辦業(yè)務為例,可采用python與Selenium、itchat、lxml、openpyxl、PIL等相關開發(fā)包進行流程自動化設計。其中主程序與腳本采用python進行開發(fā)。使用Se-lenium在chromedriver的基礎上實現(xiàn)對谷歌瀏覽器的自動化控制,可方便地打開系統(tǒng)、退出系統(tǒng)等;用itchat實現(xiàn)對微信的自動化控制,方便地進行消息推送;用lxml定位HTML元素位置,并智能化按界面標簽名進行定位或獲取返回信息;用openpyxl對excel進行讀寫處理,保存本次自動執(zhí)行的結果與日志記錄;用PIL對當前操作界面進行定位截取圖片保存,方便后期進行高層次審核;用多線程技術并發(fā)處理多個自動化任務,可方便的同時執(zhí)行若干個自動化流程。
4.2.2定位元素模擬用戶操作關鍵技術實現(xiàn)
Selenium是web應用程序自動化測試工具集,包括IDE、Grid、RC、WebDriver等,是直接運行在瀏覽器中,模擬用戶在操作,具有很強的真實感。目前支持的瀏覽器包括IE系列、火狐瀏覽器、谷歌瀏覽器等。
Selenium提供了find_element_by系列方法來定位一個頁面中的元素;如果需要對該已定位對象進行操作,通常通過We-bElement接口,常見的操作元素方法如下:send_keys模擬按鍵輸入;chck點擊元素;submit提交表單等;當操作頁面同時出現(xiàn)2個或者以上窗口時候,可以使用driver.switchTo系列方法來進行切換;如需調用js方法,可使用execute_script方法,在當前窗口/框架同步執(zhí)行javaScript。
4.3實現(xiàn)技術小結
與其他技術相比,Python語言具有易于學習和使用等特點,同時又是一個完整的強大程序設計語言。利用Python平臺結合上述Selenium、lxml、openpyxl、PIL等接口,可以對預先定義的流程計劃的各個步驟進行自動化處理,省去多次操作鍵盤鼠標,切換不同頁面的時間,大大提高了工作效率,確保有更多時間投入到更重要的工作中。
5結論與應用前景
上述解決方案及關鍵技術可替代當前人工對各項業(yè)務操作中規(guī)則簡單,重復性強,實時性要求較高且無須人工主觀判斷的工作進行重復性的操縱,將各類監(jiān)控、刷新、統(tǒng)計、導出、推送、轉發(fā)等操作實現(xiàn)智能化、自動化,將人工解放出來實現(xiàn)更高層次的詳細內容審核、業(yè)務結果驗證等技術工作,提升辦公生產效率,從而緩解人員不足問題,同時減少操作人員職業(yè)病的發(fā)生的可能性。
上述關鍵技術可應用到公司其他類似的場景,甚至其他行業(yè)相類似的場景中,提升辦公自動化的智能程度。