如何在calabash-android中将应用程序带到前台?

时间:2015-07-28 09:57:06

标签: android ruby automated-tests calabash calabash-android

我正在处理一个应用程序,它包含社交共享选项。每当我点击Facebook时,它都会在具有共享视图的设备中打开Facebook应用程序。

之后,我想把我的应用程序带到前台。

我尝试按下后退按钮,

press_back_button()

不成功。

有没有办法在Calabash-android中将应用程序带到前台?

2 个答案:

答案 0 :(得分:2)

您应该可以通过ADB发送按键和屏幕触摸来完成此操作

adb shell input keyevent KEYCODE_APP_SWITCH打开最近的应用菜单 adb shell input tap 300 300

会在屏幕上发送点击事件,但您必须使用坐标来将它们放在正确的位置。

编辑: 我刚刚使用以下命令在手机上试了一下,可以重新打开最新的应用程序

adb shell input keyevent KEYCODE_APP_SWITCH
adb shell input tap 300 1700

在ruby代码上尝试这些命令之前,看看它们是否可以从终端(而不是irb)工作。

第二个命令使用x和y坐标,这些坐标会根据手机屏幕的大小而有所不同,300 1700适合我,但你需要尝试一些不同的数字才能让它适合你。

要打开我认为您需要的第二个最新应用,我必须运行adb shell input tap 300 700。你需要玩弄它,看看它对你有用。

最终编辑:我发现了一种更好的方法,不依赖于屏幕分辨率。

adb shell input keyevent KEYCODE_APP_SWITCH

然后找到你的应用程序(你可能需要多次发送它才能使它运行)

adb shell input keyevent KEYCODE_DPAD_UP

和/或

adb shell input keyevent KEYCODE_DPAD_DOWN

然后选择

adb shell input keyevent KEYCODE_ENTER

答案 1 :(得分:1)

您需要运行系统命令,例如 system(“adb shell input keyevent KEYCODE_APP_SWITCH”) 这将打开最近的活动。