Android MonkeyRunner - 点击按钮时关闭应用程序

时间:2014-05-26 21:52:49

标签: android monkeyrunner genymotion

我正在尝试使用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,但我没有看到任何真正有用的东西。

我真的不知道在哪里看。 我有几个想法:

  1. 可能是因为我试图测试一个不是的应用程序 矿?但谷歌应用程序?
  2. 可能是Genymotion处理错误点击了吗? (打字似乎没问题,就是当它试图转向下一个意图时 失败)

3 个答案:

答案 0 :(得分:1)

可能的解决方案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)

这对我有用。也可以自己尝试一下。

可能的解决方案2:

测试不是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。