不管你是待業(yè)還是失業(yè),在這個(gè)被互聯(lián)網(wǎng)圍繞的時(shí)代里,選擇python開(kāi)發(fā)客戶(hù)端快嗎,就多了一項(xiàng)技能,還怕找不到工作?,還怕不好找工作?小編就來(lái)告訴你這個(gè)專(zhuān)業(yè)的優(yōu)勢(shì)到底體現(xiàn)在哪里:python 實(shí)現(xiàn) PC 客戶(hù)端自動(dòng)化快速入門(mén):pywinauto !,python 適合做什么開(kāi)發(fā),python開(kāi)發(fā)的客戶(hù)端依賴(lài)于環(huán)境嗎?,手機(jī)隨時(shí)隨地寫(xiě)Python,還可以開(kāi)發(fā)安卓APP,太厲害了!??。
1.python 實(shí)現(xiàn) PC 客戶(hù)端自動(dòng)化快速入門(mén):pywinauto !
python 實(shí)現(xiàn) PC 客戶(hù)端自動(dòng)化:pywinauto 快速上手!一、前言我們檸檬班的小可愛(ài),在學(xué)完我們檸檬班自動(dòng)化的課程之后,就掌握了接口自動(dòng)化,web自動(dòng)化,app自動(dòng)化,這些工作中常用的自動(dòng)化技能,在工作足以夠應(yīng)對(duì)90%以上的自動(dòng)化需求了。不過(guò)近期也有部分小可愛(ài)在問(wèn)PC端自動(dòng)化怎么去做?對(duì)這個(gè)技術(shù)比較好奇,使用python可以不可以實(shí)現(xiàn)PC客戶(hù)端自動(dòng)化測(cè)試?答案當(dāng)然是可以的,所以今天在這邊專(zhuān)門(mén)整理了一遍文章,和大家一起聊聊如何使用python做PC端自動(dòng)化!二、環(huán)境安裝使用python實(shí)現(xiàn)來(lái)做PC端自動(dòng)化,前提是先安裝好python,那么還需要用到一個(gè)第三方庫(kù):pywinauto,在這邊我們首先需要安裝好這個(gè)庫(kù),安裝命令如下: pip install pywinauto三、使用說(shuō)明安裝好了之后,關(guān)于使用說(shuō)明大家可以參照官方文檔上的說(shuō)明,如下圖: 上述內(nèi)容翻譯如下:就是說(shuō)在我們安裝好 Pywinauto 之后,首先要確定哪種可訪問(wèn)性技術(shù)(pywinauto 的 backend)可以用于我們的應(yīng)用程序,在 windows 上受支持的輔助功能技術(shù)有兩種:Win32 API (backend="win32") 默認(rèn) backendMS UI (backend="uia")如果您不能確定程序到底適用于那種backend,可以借助于GUI對(duì)象檢查工具來(lái)做,常用的檢查工具有Inspect.ex,Spy++ 等,這個(gè)不做過(guò)多介紹,大家自行學(xué)習(xí)和下載,使用很簡(jiǎn)單,也非常便捷。四、快速入門(mén)在安裝好環(huán)境之后,并且確定了應(yīng)用程序適用的 backend,那么接下來(lái)我們就可以使用 Pywinauto 這個(gè)模塊來(lái)對(duì)應(yīng)用程序進(jìn)行自動(dòng)化操作了1、連接到應(yīng)用程序這邊用 window 自帶的記事本程序作為案例,給大家做講解連接應(yīng)用程序,首先需要用到 pywinauto..()來(lái)創(chuàng)建一個(gè)應(yīng)用程序?qū)ο?,然后再連接到應(yīng)用程序,有如下兩種方法:方式一:直接通過(guò) start 方法打開(kāi)操作的應(yīng)用程序,from pywinauto import # 方式一:創(chuàng)建應(yīng)用程序時(shí)可以,指定應(yīng)用程序的合適的backend,start方法中指定啟動(dòng)的應(yīng)用程序 app = .(backend='uia').start('notepad.exe')方式二:連接已經(jīng)打開(kāi)應(yīng)用程序,可以通過(guò) connect 連接到指定的應(yīng)用程序from pywinauto import # 方式二:查看要打開(kāi)的程序進(jìn)程號(hào),通過(guò)process指定進(jìn)程號(hào)連接 app = .().connect(process=19035)運(yùn)行以上代碼,就會(huì)自動(dòng)打開(kāi)記事本記事本,如下2、窗口選擇打開(kāi)這個(gè)窗口之后,我們要操作該窗口的話(huà),那么就的先選中這個(gè)窗口,關(guān)于窗口的選擇有一下幾種方式# 方式一 :不適用于窗口名為中文的 wind_1 = app.窗口名 # 方式二 :窗口名可以為中文 wind_2 = app["窗口名"] # 案例使用:選擇上面打開(kāi)的計(jì)算器程序窗口 wind_calc = app['無(wú)標(biāo)題 - 記事本']3、控件操作程序窗口中的每一塊內(nèi)容,都是一個(gè)控件,我們要對(duì)這個(gè)窗口的某一塊內(nèi)容進(jìn)行操作,就需要選擇到對(duì)應(yīng)的控件,獲取所有控件我們可以通過(guò) print_control_()這個(gè)方法,來(lái)獲取這個(gè)窗口下的直接子控件,如下:app['無(wú)標(biāo)題 - 記事本'].print_control_()打印出來(lái)的結(jié)果如下:上面打印出來(lái)的內(nèi)容分別對(duì)應(yīng)窗口種的以一下部分:選擇控件關(guān)于控件選擇的方法有好幾種,最簡(jiǎn)單的方法如下:# 選擇控件的方法 wind_calc = app["窗口名"]["控件名"] # 案例操作:選擇編輯窗口 edit = app['無(wú)標(biāo)題 - 記事本']['Edit']內(nèi)容輸入在上面選擇到編輯窗口之后,我們就可以進(jìn)行內(nèi)容輸入了,內(nèi)容輸入的方法:type_key()# 在編輯欄種輸入內(nèi)容 edit.type_keys("檸檬班") edit.type_keys("python自動(dòng)化") edit.type_keys("musen")運(yùn)行結(jié)果如下:4、鍵盤(pán)操作輸入完上述內(nèi)容之后,接下來(lái)我們要修改編輯框中的內(nèi)容,通過(guò)鍵盤(pán)完成以下操作:全選(ctrl+A) 復(fù)制(Ctrl+C) 粘貼(Ctrl+V) 回車(chē)(Enter) 粘貼(Ctrl+V) pywinauto.keyboard.send_key pywinauto 模擬操作鍵盤(pán),需要使用到 pywinauto.keyboard.send_keys 這個(gè)方法 # 導(dǎo)入模塊 from pywinauto.keyboard import send_keys # 全選(ctrl+A) send_keys("^a") # 復(fù)制(ctrl+C) send_keys("^c") # 粘貼(ctrl+V) send_keys("^v") # 回車(chē)鍵 send_keys("{VK_RETURN}") # 粘貼(ctrl+V) send_keys("^v") 運(yùn)行結(jié)果如下: 常見(jiàn)的按鍵操作 字母按鍵用按鍵小寫(xiě)字母表示 常用的一些按鍵 ESC鍵:VK_ESCAPE 回車(chē)鍵:VK_RETURN TAB鍵:VK_TAB Shift鍵:VK_SHIFT Ctrl鍵:VK_CONTROL Alt鍵:VK_MENU 按鍵修飾符 # 對(duì)于一些常用的按鍵,可以通過(guò)修飾符來(lái)表示,使用的時(shí)候比較方便 '+': {VK_SHIFT} '^': {VK_CONTROL} '%': {VK_MENU} Alt鍵 # 上面:全選(ctrl+A) 復(fù)制(ctrl+C) 粘貼(ctrl+V)就使用的是修飾符^來(lái)代表ctrl 更多的鍵盤(pán)操作大家可以參考官網(wǎng)文檔 5、鼠標(biāo)操作pywinauto 操作鼠標(biāo)的所有方法都封裝在 pywinauto. mouse 這個(gè)模塊中,使用鼠標(biāo)之前,首先要導(dǎo)入 mouse 模塊,mouse 模塊中包含了一系列的鼠標(biāo)操作事件5、鼠標(biāo)操作pywinauto 操作鼠標(biāo)的所有方法都封裝在 pywinauto. mouse 這個(gè)模塊中,使用鼠標(biāo)之前,首先要導(dǎo)入 mouse 模塊,mouse 模塊中包含了一系列的鼠標(biāo)操作事件 pywinauto. mouse 鼠標(biāo)移動(dòng):move 方法 move(coords=(x 軸坐標(biāo),y 軸坐標(biāo)))緩慢移動(dòng)鼠標(biāo)案例 for i in range(10): x = 10 * i y = 10 * i time.sleep(0.5) # 移動(dòng)鼠標(biāo) mouse.move(coords=(x, y)) 鼠標(biāo)點(diǎn)擊:click # button指定左擊還是右擊,coords指定鼠標(biāo)點(diǎn)擊的位置 # 3.1、鼠標(biāo)單擊 # 指定位置,鼠標(biāo)左擊 mouse.click(button='left', coords=(40, 40)) # 指定位置 鼠標(biāo)右擊 # mouse.click(button='right', coords=(100, 200)) # 3.2 鼠標(biāo)雙擊 mouse.double_click(button='left', coords=(140, 40)) # 4 按下鼠標(biāo):press # 將屬性移動(dòng)到(140,40)坐標(biāo)處按下 mouse.press(button='left', coords=(140, 40)) # 5 釋放鼠標(biāo):repleace # 將鼠標(biāo)移動(dòng)到(300,40)坐標(biāo)處釋放, mouse.release(button='left', coords=(300, 40)) # 6、右鍵單擊指定坐標(biāo) mouse.right_click(coords=(400, 400)) # 7、鼠標(biāo)中鍵單擊指定坐標(biāo)(很少用的到) mouse.wheel_click(coords=(400, 400)) # 8 滾動(dòng)鼠標(biāo) # coords:指定鼠標(biāo)的坐標(biāo)位置。 # wheel_dist指定鼠標(biāo)滾輪滑動(dòng)的次數(shù),正數(shù)往上,負(fù)數(shù)往下。 mouse.scroll(coords=(1200,300),wheel_dist=-3) 五、說(shuō)明關(guān)于 pywinauto 模塊的基本使用就該大家介紹到這里了,對(duì) pc 端自動(dòng)化感興趣的同學(xué)可以往這個(gè)方向去深入學(xué)習(xí)。
2.python 適合做什么開(kāi)發(fā)
python是同時(shí)支持腳本的一種編程語(yǔ)言。十分強(qiáng)大!具 Python的作者M(jìn)ark Lutz在書(shū)中提到,除了 intensive的領(lǐng)域之外(科學(xué)計(jì)算,可視化等等),python可以做任何事情。(其實(shí)我常常使用python計(jì)算,小規(guī)模的計(jì)算和可視化python是可以滿(mǎn)足的,另外接近硬件的底層的編程當(dāng)然只能是c/c++)。其實(shí)問(wèn)題的關(guān)鍵不在于python自身可以干什么,而是通過(guò)python可以干什么,龐大的、由c/c++編寫(xiě)的庫(kù)資源有不少可以被python直接使用,這樣即使你表面上編寫(xiě)的是純python代碼,你得到的東西遠(yuǎn)遠(yuǎn)更多更強(qiáng)大!如果你側(cè)重網(wǎng)絡(luò)的話(huà),Google一下Django,Twisted,Zope,Plone就知道python多厲害了——如plone的網(wǎng)站就是用plone構(gòu)建的。而Google更是把python列為第三重要的語(yǔ)言——繼Java,c++之后。*的Google App Engine的腳本語(yǔ)言就是python!當(dāng)然也推薦直接到www.python.org官網(wǎng)上面看看python的。
3.python開(kāi)發(fā)的客戶(hù)端依賴(lài)于環(huán)境嗎?
用py2exe, 等都可以將python開(kāi)發(fā)的桌面程序(即客戶(hù)端)與PVM(即Win環(huán)境下的pythonxx.dll)打包到一起,發(fā)布到用戶(hù)電腦上時(shí)是完全可以脫離 python 環(huán)境運(yùn)行的,不過(guò)體積比較大,4,5MB左右。
4.手機(jī)隨時(shí)隨地寫(xiě)Python,還可以開(kāi)發(fā)安卓APP,太厲害了!
python, 近五年最為火爆的編程語(yǔ)言,語(yǔ)法優(yōu)雅,類(lèi)庫(kù)豐富,一行代碼即可完成 Java 十行代碼量。 本次,舞劍來(lái)推薦一款手機(jī)端使用 Python 的APP。是安卓上的Python引擎,它包含一些有趣的特性,比如Python解釋器,運(yùn)行歡迎,編輯器和QPYPI。它讓你更容易地在安卓上使用Python。并且它完全免費(fèi)。QPython在全球范圍內(nèi)已經(jīng)有了數(shù)百萬(wàn)的用戶(hù),它也是一個(gè)開(kāi)源項(xiàng)目。對(duì)于不同的使用場(chǎng)景,QPython有兩個(gè)分支,QPython Ox和3x。QPython 3x,主要是給有經(jīng)驗(yàn)的Python用戶(hù)準(zhǔn)備,它能提供一些高級(jí)特性。QPython OL ,主要定位于編程學(xué)習(xí)者,它為初學(xué)者提供了較友好的特性。通俗的說(shuō),新手入門(mén)用Qpython OL,入門(mén)后可以用QPython 3X。QPython特性離線的Python 3, Python 2解釋器:完全不需要聯(lián)網(wǎng)運(yùn)行Python程序它支持運(yùn)行多種類(lèi)型的項(xiàng)目,包括:控制臺(tái)程序,SL4A程序,WebApp項(xiàng)目等等非常方便的QR碼閱讀器,能幫助你方便地將代碼傳到手機(jī)上QPYPI和一個(gè)自定義的倉(cāng)庫(kù)放了一些預(yù)編譯的包,主要是加強(qiáng)科學(xué)計(jì)算庫(kù),比如numpy, scipy, , scikit-learn, keras等等,方便你學(xué)習(xí)科學(xué)計(jì)算方便使用的編輯器內(nèi)嵌, 和junpyter notebook完全兼容特別注意:整合和拓展了安卓庫(kù)的腳本層(SL4A):它能讓你用Python驅(qū)動(dòng)安卓工作良好的文檔和客戶(hù)支持下面詳細(xì)說(shuō)一下它的特性。支持Python2和3||1大家都知道,Python2 已經(jīng)退出歷史舞臺(tái)了,處于無(wú)人維護(hù)的狀態(tài)。不過(guò),有許多資料和源碼還是低版本的,如果用在 Python3 上,根本性運(yùn)行不了。 這時(shí)候就可以將 QPython 一鍵切換到 2.x 上,非常方便。課程教學(xué)||2前面也說(shuō)了,QPython OL定位新手,很貼心的加入了 Python課程,包括了 QPython新手入門(mén)、開(kāi)發(fā)Web App、開(kāi)發(fā)圖形界面、開(kāi)發(fā)安卓APP等教程。自帶終端,支持Python3.6||3QPython不止是一個(gè)代碼編輯器,它還集成了終端模塊,它*支持了 Python3.6.6版本,對(duì)于大部分 Python 代碼來(lái)說(shuō),夠用了。QPython擁有QPYPI客戶(hù)端||4既然使用 Python,就逃不開(kāi)類(lèi)庫(kù)的使用。類(lèi)庫(kù)可以說(shuō)是 Python 賴(lài)以為生的法寶,沒(méi)有類(lèi)庫(kù),Python 寸步難行。類(lèi)庫(kù)的安裝,都是使用 pip。QPython不但可以 pip 安裝第三方庫(kù),而且還集成了 QPYPI客戶(hù)端,自帶了 Scipy、Numpy等模塊,可以很方便的安裝。開(kāi)發(fā) Android 應(yīng)用||5QPython 集成了 SL4A 模塊,可以用 SL4A 開(kāi)發(fā)安卓應(yīng)用。 它包含了很多 Android 接口,調(diào)用起來(lái)非常方便,對(duì) Python 用戶(hù)很友好。
就拿大數(shù)據(jù)說(shuō)話(huà),優(yōu)勢(shì)一目了然,從事IT行業(yè),打開(kāi)IT行業(yè)的新大門(mén),找到適合自己的培訓(xùn)機(jī)構(gòu),進(jìn)行專(zhuān)業(yè)和系統(tǒng)的學(xué)習(xí)。