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