馬寧 陳曦 陳正銘



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