APPium+Python編寫(xiě)真機(jī)移動(dòng)端自動(dòng)化腳本的項(xiàng)目實(shí)踐
前置條件
完成軟件和環(huán)境的安裝后就可以開(kāi)始移動(dòng)端自動(dòng)化腳本的編寫(xiě)了。
連接設(shè)備
手機(jī)打開(kāi)USB調(diào)試模式,連接手機(jī)。此時(shí)去命令窗口查看自己的設(shè)備是否已經(jīng)連接。

讓后打開(kāi)Appium Server,進(jìn)行配置,設(shè)置Android與Java的環(huán)境地址。

啟動(dòng)服務(wù)器,即可。

腳本編寫(xiě)
初始化設(shè)備參數(shù)
首先對(duì)于手機(jī)的參數(shù)進(jìn)行填寫(xiě),對(duì)于要進(jìn)行測(cè)試的APP的信息也進(jìn)行獲取。
import time
from appium import webdriver
# 初始化參數(shù)
desired_caps = {
'platformName': 'Android', # 被測(cè)手機(jī)是安卓
'platformVersion': '11', # 手機(jī)安卓版本
'deviceName': 'ncaa', # 設(shè)備名,安卓手機(jī)可以隨意填寫(xiě)
'appPackage': 'com.cainiao.wireless', # 啟動(dòng)APP的包名
'appActivity': '.homepage.view.activity.WelcomeActivity', # 啟動(dòng)的Activity名稱
'noReset': True, # 不要重置App,如果為False的話,執(zhí)行完腳本后,app的數(shù)據(jù)會(huì)清空,比如你原本登錄了,執(zhí)行完腳本后就退出登錄了
'newCommandTimeout': 6000, # 命令的時(shí)間間隔
'unicodeKeyboard': True, # 繞過(guò)手機(jī)鍵盤(pán)操作,unicodeKeyboard是使用unicode編碼方式發(fā)送字符串,即中文
'resetKeyboard': True, # 繞過(guò)手機(jī)鍵盤(pán)操作,resetKeyboard是將鍵盤(pán)隱藏起來(lái)
}以微信為例,我們?cè)诿畲翱谥休斎朐撌謾C(jī)的所有的第三方軟件,獲取手機(jī)上所需包名。

在獲取該APP登錄的活動(dòng)。首先在手機(jī)上打開(kāi)微信,并在CMD中進(jìn)行操作。從而獲取到了微信的包名與登錄的活動(dòng)名。

# 連接Appium Server,初始化自動(dòng)化環(huán)境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
time.sleep(5)之后進(jìn)行APPium的連接,手機(jī)就會(huì)自動(dòng)打開(kāi)微信了。
操作命令
下一步,我們打開(kāi)Android UI分析器。獲取到了目前手機(jī)頁(yè)面的信息。根據(jù)我們的目的,找到自己所需的組件即可。根據(jù)其ID我們就可以在上手機(jī)上定位它,從而完成我們相要的操作。

腳本運(yùn)行
具體代碼與實(shí)現(xiàn)效果如下:
import time
from appium import webdriver
# 初始化參數(shù)
desired_caps = {
'platformName': 'Android', # 被測(cè)手機(jī)是安卓
'platformVersion': '11', # 手機(jī)安卓版本
'deviceName': 'ncaa', # 設(shè)備名,安卓手機(jī)可以隨意填寫(xiě)
'appPackage': 'com.tencent.mm', # 啟動(dòng)APP的包名
'appActivity': '.ui.LauncherUI', # 啟動(dòng)的Activity名稱
'noReset': True, # 不要重置App,如果為False的話,執(zhí)行完腳本后,app的數(shù)據(jù)會(huì)清空,比如你原本登錄了,執(zhí)行完腳本后就退出登錄了
'newCommandTimeout': 6000, # 命令的時(shí)間間隔
# 'unicodeKeyboard': True, # 繞過(guò)手機(jī)鍵盤(pán)操作,unicodeKeyboard是使用unicode編碼方式發(fā)送字符串,即中文
'resetKeyboard': True, # 繞過(guò)手機(jī)鍵盤(pán)操作,resetKeyboard是將鍵盤(pán)隱藏起來(lái)
}
# 連接Appium Server,初始化自動(dòng)化環(huán)境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# time.sleep(5)
# 每個(gè)操作的等待時(shí)間
driver.implicitly_wait(5)
driver.find_element_by_id('com.tencent.mm:id/fzg').click()
driver.find_element_by_id('com.tencent.mm:id/auj').send_keys('川北野生小熊貓')
driver.find_element_by_id('com.tencent.mm:id/ay5').click()
print(" done ")
time.sleep(600)
driver.quit()

到此這篇關(guān)于APPium+Python編寫(xiě)真機(jī)移動(dòng)端自動(dòng)化腳本的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)APPium Python真機(jī)移動(dòng)端自動(dòng)化腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python腳本在Appium庫(kù)上對(duì)移動(dòng)應(yīng)用實(shí)現(xiàn)自動(dòng)化測(cè)試
- Python+Appium實(shí)現(xiàn)自動(dòng)化測(cè)試的使用步驟
- Appium Python自動(dòng)化測(cè)試之環(huán)境搭建的步驟
- python利用appium實(shí)現(xiàn)手機(jī)APP自動(dòng)化的示例
- 詳解基于Android的Appium+Python自動(dòng)化腳本編寫(xiě)
- Appium+Python+pytest自動(dòng)化測(cè)試框架的實(shí)戰(zhàn)
- python+appium+yaml移動(dòng)端自動(dòng)化測(cè)試框架實(shí)現(xiàn)詳解
- Python與Appium實(shí)現(xiàn)手機(jī)APP自動(dòng)化測(cè)試的示例代碼
- Python+Appium自動(dòng)化測(cè)試的實(shí)戰(zhàn)
相關(guān)文章
Python實(shí)現(xiàn)將字典(列表按列)存入csv文件
這篇文章主要介紹了Python實(shí)現(xiàn)將字典(列表按列)存入csv文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Django實(shí)現(xiàn)登錄隨機(jī)驗(yàn)證碼的示例代碼
登錄驗(yàn)證碼是每個(gè)網(wǎng)站登錄時(shí)的基本標(biāo)配,這篇文章主要介紹了Django實(shí)現(xiàn)登錄隨機(jī)驗(yàn)證碼的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
python循環(huán)神經(jīng)網(wǎng)絡(luò)RNN函數(shù)tf.nn.dynamic_rnn使用
這篇文章主要為大家介紹了python循環(huán)神經(jīng)網(wǎng)絡(luò)RNN的tf.nn.dynamic_rnn使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
PyCharm+Qt Designer+PyUIC安裝配置教程詳解
這篇文章主要介紹了PyCharm+Qt Designer+PyUIC安裝配置教程詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
使用 Django Highcharts 實(shí)現(xiàn)數(shù)據(jù)可視化過(guò)程解析
這篇文章主要介紹了使用 Django Highcharts 實(shí)現(xiàn)數(shù)據(jù)可視化過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
在Python中使用zlib模塊進(jìn)行數(shù)據(jù)壓縮的教程
這篇文章主要介紹了在Python中使用zlib模塊進(jìn)行數(shù)據(jù)壓縮的教程,是Python入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06
np.mean()和np.std()函數(shù)的具體使用
本文主要介紹了np.mean()和np.std()函數(shù)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Python虛擬機(jī)字節(jié)碼教程之裝飾器實(shí)現(xiàn)詳解
在本篇文章當(dāng)中主要給大家介紹在?cpython?當(dāng)中一些比較常見(jiàn)的字節(jié)碼,從根本上理解?python?程序的執(zhí)行。在本文當(dāng)中主要介紹一些?python?基本操作的字節(jié)碼,并且將從字節(jié)碼的角度分析函數(shù)裝飾器的原理2023-04-04
Python實(shí)現(xiàn)過(guò)濾單個(gè)Android程序日志腳本分享
這篇文章主要介紹了Python實(shí)現(xiàn)過(guò)濾單個(gè)Android程序日志腳本分享,本文講解了原理、實(shí)現(xiàn)代碼、使用方法、最新代碼等內(nèi)容,需要的朋友可以參考下2015-01-01

