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

标签 android ruby automated-tests calabash calabash-android

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

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

我尝试按后退按钮,

press_back_button()

没有成功。

有什么方法可以将Calabash-android中的应用程序带到前台吗?

最佳答案

您应该能够通过使用 ADB 发送按键和屏幕触摸来做到这一点

adb shell 输入 keyevent KEYCODE_APP_SWITCH 打开最近使用的应用程序菜单 adb shell 输入点击 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

关于android - 如何在 calabash-android 中将应用程序带到前台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31672986/

相关文章:

ruby-on-rails - 在 Heroku、PostgreSQL 和 Rails 5 上运行迁移时出错

c# - 能否在一台计算机上安装多个 Visual Studio 2015 测试代理?

android - 如何通过 Intent 只选择doc、docx文件?

android - AsyncTask 中的蓝牙发现

ruby-on-rails - 使用 Google API 客户端,如何创建客户端

ruby-on-rails - Capistrano 3 错误 - extconf.rb :29:in `<main>' : The "libxml2" package isn't available. (RuntimeError)

testing - 在 Lotus Notes 8.5 上自动测试

html - 尝试使用程序点击网页上的 1,000 个 span。这可能吗?

android - 在 Activity 按钮单击事件上获取 Fragments edittext 值

java - 如何在 CustomAdapter 类中调用新 Intent ?