我正在尝试使用MonkeyRunner使用我的Gmail地址登录我的虚拟设备。 问题是,点击Google商店应用中的“新建”按钮时应用会关闭。
我使用Genymotion作为模拟器。
这是我的剧本:
import os
import sys
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
device = MonkeyRunner.waitForConnection()
device.startActivity(component='com.google.android.gsf.login/com.google.android.gsf.login.AccountIntroUIActivity')
device.touch(426, 1140, MonkeyDevice.DOWN_AND_UP)
MonkeyRunner.sleep(5)
我还有一个logcat输出here,但我没有看到任何真正有用的东西。
我真的不知道在哪里看。 我有几个想法:
答案 0 :(得分:1)
就我在你的代码中所看到的那样;您的资料包是:com.google.android.gsf.login
,您的活动是:com.google.android.gsf.login.AccountIntroUIActivity
我知道monkeyrunner示例代码here中的用法如下:
runComponent = package + '/' + activity
device.startActivity(component=runComponent)
但它在我的情况下也没有用,应用已关闭。尝试使用如下:
package = com.google.android.gsf.login
activity = .AccountIntroUIActivity
runComponent = package + '/' + activity
device.startActivity(component=runComponent)
这对我有用。也可以自己尝试一下。
测试不是monkeyrunner的应用程序不是问题。因为您根本没有使用源代码。因此,我的建议是,当您使用 device.touch()时,请确保按下正确的按钮或字段。这可能会导致问题。
答案 1 :(得分:1)
您可以尝试 AndroidViewClient/culebra 它可能无法解决您的问题,因为很难确切地说出您的问题是什么,但它肯定会简化您的脚本开发。
手动启动活动,使其显示在屏幕上。
运行
$ culebra --start-activity=com.google.android.gsf.login/.AccountIntroUIActivity --find-views-with-text=on -o /tmp/script.py
修改script.py
,找到包含您要触摸的按钮的行,然后添加touch()
方法。例如,如果它是
no_id79 = vc.findViewWithTextOrRaise(u'New')
你可以添加
no_id79.touch()
然后当您运行script.py
时,活动将启动并触摸按钮。
答案 2 :(得分:0)
问题是您需要浏览设置/添加帐户才能创建帐户。您无法直接调用com.google.android.gsf.login.AccountIntroUiActivity。