Appium和uiautomator2安裝和使用


當我在MAC平台上,通過Python(python-client )編寫了一個appium自動化腳本並執行,請求會首先到 appium.dum (MAC下的appium-Server),appium-Server通過解析,驅動iOS設備來執行appium自動化腳本。

或者,我在Windows平台上,通過Java( java-client )編寫了一個appium自動化腳本並執行,請求會首先到 appiumForWindow.zip(Window下的appium-Server),appium-Server通過解析,驅動Android虛擬機或真機來執行appium腳本。

所以,你會看到appium的強大之處就在於此。

 

 

(1)安裝安卓sdk 

Android SDK 下載地址:

http://tools.android-studio.org/index.php/sdk

 

(2)添加環境變量

是新增喔,可不是直接在path里  這個地址就是你sdk所在路徑

ANDROID_HOME  D:\android\Android\sdk

 

(3)安裝appium-server

https://bitbucket.org/appium/appium.app/downloads/ 安裝包地址:

安裝完成 在命令窗口輸入:appium-doctor 檢查環境 (以上兩個安裝完成之前要保證java jdk已安裝)

要出現ALL checks 溫熱successful 才是正確的

如果提示: “appium-doctor”不是內部或外部命令,找到Appium的安裝目錄,例如:

C:\Program Files\Appium\node_modules\.bin

 

(4)Appium-Python-Client。
 
直接在命令窗口輸入 pip install Appium-Python-Client。
 
 
 
二 uiautomator2
4,weditor鏈接手機進行調式:
 WEditor可以理解為在瀏覽器中打開的uiautomatorviewer,個人體驗比uiautomatorviewer更好用,不會像uiautomatorviewer那樣由於安卓系統的不同,會出現各種情況,還支持安卓、ios、Neco(beta),本人是體驗了uiautomatorviewer的坑以后,決定投向WEditor。

我用的python3 直接pip 安裝的uiautomator2 和weditor

 

1、安裝WEditor:進入cmd,輸入pip install --pre --upgrade weditor

2、打開WEditor:在cmd下,輸入python -m weditor,此時會自動打開默認瀏覽器

 

出現的頁面Android 右邊的空 填 adb devices 查到的 手機devices

 

三,列舉一下uiautomator2的常用命令:

 

 

1.點擊特定對象中心位置:
 
d(text="Settings").click()
2.等待對象顯示並點擊,等待最多10s:
 
d(text="Settings").click(timeout=10)
3.當10s內對象出現就點擊,默認0s:
 
clicked = d(text='Skip').click_exists(timeout=10.0)
4.點擊並輪詢對象直到消失,其中maxretry為最多點擊次數,默認10;interval為輪詢時間間隔,默認1:
 
d(text="Skip").click_gone(maxretry=10, interval=1.0)
5.長按指定的對象,duration為按住時間,timeout為超時時間:
 
d(text="Settings").long_click(duration=10,timeout=10)
6.拖動指定對象到x,y位置,0.5s完成:
 
d(text="Settings").drag_to(x, y, duration=0.5)
7.拖動指定對象到另一個對象位置,0.5s內完成:
 
d(text="Settings").drag_to(text="Clock", duration=0.5)
8.雙指從(a,b),(c,d)滑動(a1,b1),(c1,d1),步長100:
 
d().gesture((a,b),(c,d), a1,b1),(c1,d1),steps=100)
9.從屏幕外側向中心滑動,percent為左右起始位置占兩邊的比例:
 
d().pinch_out(percent=33, steps=100)
 
10.從屏幕中心向外側滑動,percent為左右起始位置占兩邊的比例:
 
d().pinch_out(percent=33, steps=100)
11.等待對象:
 
d(text='相機').wait(10)
 
12.等待對象消失,最多等待10s:
 
d(text='相機').wait_gone(timeout=10)
 
13.滾動:
 
a.向上滾動:d(scrollable=True).scroll(steps=10)
 
b.向下滑動:d(scrollable=True).scroll.vert.backward()
 
c.水平向右滾動:d(scrollable=True).scroll.horiz.forward(steps=50)
 
d.水平向左滾動:d(scrollable=True).scroll.horiz.backward(steps=50)
 
e.水平滑動到最左邊:d(scrollable=True).scroll.horiz.toBeginning(steps=100, max_swipes=1000)
 
f.水平滑動到最右邊:d(scrollable=True).scroll.horiz.toEnd(steps=100, max_swipes=1000)
 
g.豎直滑動到結尾:d(scrollable=True).scroll.toEnd()
 
h.豎直滑動到開頭:d(scrollable=True).scroll.toBeginning(steps=50)
 
i.滑動到指定位置(測試):d(scrollable=True).scroll.to(text ='測試')
 
 
四,啟動app的三種方式:
 
print("啟動app")
# pkgname = 'com.finshell.custapp'
# activity = 'com.finshell.custapp.ui.activity.SplashActivity'
# cmd = 'adb shell am start -n' + pkgname + '/' + activity
# os.system(cmd)
#以上為第一種方式 才用的是adb 命令通過pkg和activity來啟動的

那么問題來了 如何獲取這兩個東西呢:可以才用
aapt dump badging這個命令 后面加app的apk就行 這個aapt命令可以在Android\android-sdk里面找到SDK Manager.exe 
打開這個程序,在tools下面 安裝android-sdk BUild-tools就行了 aapt命令就可以用了

# time.sleep(1)
d = u2.connect()
# d.app_start('com.finshell.custapp')#第二種啟動app的方式
d.session('com.finshell.custapp')#第三種啟動app的方式


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM