monekeyrunner не может возвращать значения «getProperty» и «getSystemProperty» - PullRequest
0 голосов
/ 15 марта 2019

Когда я написал скрипт на python для использования monkeyrunner , я обнаружил, что скрипт не может получить возвращаемое значение getProperty, которое я хочу. Сценарий получает только результат None.

Вот код Python, в котором я хочу получить возвращаемое значение getProperty:

#-*-coding:utf-8-*-

# import module
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage

# connect service 
device = MonkeyRunner.waitForConnection()

print device.getProperty("build.ID")
print device.getProperty("activity") 
print device.getSystemProperty('build.version.sdk')

И результат None.

Я не знаю, что не так. Пожалуйста, просмотрите и дайте отзыв.

Вот результат выполнения:

enter image description here

Вот весь код, который я кодирую:

#-*-coding:utf-8-*-

# import module
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, 
MonkeyImage

# connect service
device = MonkeyRunner.waitForConnection()

# screenshot
result = device.takeSnapshot()
result.writeToFile('E:\\Taskmanagetest_1\\testresult\\Test_001.jpg','jpg')

# install apk  
device.installPackage('E:\\Taskmanagetest_1\\app\\build\\outputs\\apk\\debug\\app-debug.apk')  

# sleep
MonkeyRunner.sleep(5)

# screenshot
result = device.takeSnapshot()
result.writeToFile('E:\\Taskmanagetest_1\\testresult\\Test_002.jpg','jpg')

# print device.getProperty("am.current.comp.package")

print('Install Success!')

# test
device.startActivity(component="com.example.samuel_soon.taskmanagetest_1/.Ma"
                           "inActivity")
MonkeyRunner.sleep(5)

result = device.takeSnapshot()
result.writeToFile('E:\\Taskmanagetest_1\\testresult\\Test_003.jpg','jpg')

device.touch(520,520,'DOWN_AND_UP')

MonkeyRunner.sleep(5)
result = device.takeSnapshot()
result.writeToFile('E:\\Taskmanagetest_1\\testresult\\Test_004.jpg','jpg')

print device.getProperty("build.ID")
print device.getProperty("activity")
print device.getSystemProperty('build.version.sdk')

device.removePackage("com.example.samuel_soon.taskmanagetest_1")
print('Remove Success!')
result = device.takeSnapshot()
result.writeToFile('E:\\Taskmanagetest_1\\testresult\\Test_005.jpg','jpg')

1 Ответ

0 голосов
/ 27 марта 2019

Вы можете использовать AndroidViewClient / culebra , чтобы сгенерировать скрипт, который можно редактировать и добавлять print операторы

#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""
Copyright (C) 2013-2018  Diego Torres Milano
Created on 2019-03-26 by Culebra v15.5.1
                      __    __    __    __
                     /  \  /  \  /  \  /  \ 
____________________/  __\/  __\/  __\/  __\_____________________________
___________________/  /__/  /__/  /__/  /________________________________
                   | / \   / \   / \   / \   \___
                   |/   \_/   \_/   \_/   \    o \ 
                                           \_____/--<
@author: Diego Torres Milano
@author: Jennifer E. Swofford (ascii art snake)
"""


from com.dtmilano.android.viewclient import ViewClient

device, serialno = ViewClient.connectToDeviceOrExit()
vc = ViewClient(device, serialno)

print device.getProperty("ro.build.id")
print device.getTopActivityName()
print device.getSystemProperty("ro.build.version.sdk")

, а при выполнении выдает ожидаемые значения

OSM1.180201.007
com.google.android.apps.nexuslauncher/.NexusLauncherActivity
27
...