日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python安卓自动化实现方法_uiautomator +python 实现安卓UI自动化

發布時間:2025/3/11 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python安卓自动化实现方法_uiautomator +python 实现安卓UI自动化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單實例

注:安卓6.0以上的手機不會自動安裝app-uiautomator.apk和app-uiautomator-test.apk,需要手動安裝,否則報錯ioerror RPC server not started

uiautomator +python+HTMLTestRunner 安卓UI自動化實現

#coding:utf-8

from uiautomator importDeviceimportosimportunittestfrom HTMLTestRunner importHTMLTestRunnerimporttime

d=Device(‘127.0.0.1:62001‘)printd.infoclassTestEle(unittest.TestCase):defsetUp(self):

cmd= ‘adb shell am start me.ele/me.ele.application.ui.home.HomeActivity‘os.system(cmd)

cmd= ‘adb shell am start me.ele/me.ele.shopping.ui.search.SearchActivity‘os.system(cmd)deftearDown(self):

cmd=‘adb shell am force-stop me.ele‘os.system(cmd)deftestSearch(self):

d(resourceId=‘me.ele:id/editor‘).set_text(‘coco‘)

d(resourceId=‘me.ele:id/search‘).click()

d.screenshot(r"E:\code\auto\ele_search.png")

self.assertTrue(d(text="coco").exists)if __name__ == ‘__main__‘:

suite=unittest.TestSuite()

suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestEle))

now= time.strftime(‘%Y-%m-%d‘, time.localtime(time.time()))

test_dir= r‘E:\code\auto‘filename= test_dir + ‘/‘ + now + ‘test_result.html‘fp= file(filename,‘wb‘)

runner= HTMLTestRunner(stream=fp, title=‘ele demo by uiautomator‘, description= u‘測試結果‘)

runner.run(suite)

注:

1.通過adb devices獲取設備名,127.0.0.1:62001是夜神模擬器的設備名

2.通過adb shell dumpsys window | findstr mCurrentFocus命令獲取apk應用名和.MainActivity,如me.ele/me.ele.application.ui.home.HomeActivity

3.‘adb shell am start? me.ele/me.ele.application.ui.home.HomeActivity‘ 啟動模擬器上app的activity,使用真機無法啟動,可能是app應用不允許外部訪問

C:\Users\admin>adb shell am start? me.ele/me.ele.application.ui.home.HomeActivity

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=me.ele/.application.ui.home.HomeActivity }

java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]

flg=0x10000000 cmp=me.ele/.application.ui.home.HomeActivity } from null (pid=21101, uid=2000) not exported from uid 10046

at android.os.Parcel.readException(Parcel.java:1468)

at android.os.Parcel.readException(Parcel.java:1422)

at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:2150)

at com.android.commands.am.Am.runStart(Am.java:694)

at com.android.commands.am.Am.onRun(Am.java:272)

at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)

at com.android.commands.am.Am.main(Am.java:78)

at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)

at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:243)

at dalvik.system.NativeStart.main(Native Method)

4.通過uiautomatorviewer獲取resourceId

運行結果:d(text="coco").exists包含了搜索欄的‘coco‘,故而斷言成功

總結

以上是生活随笔為你收集整理的python安卓自动化实现方法_uiautomator +python 实现安卓UI自动化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。