【问题标题】:How to push app in background and launch from same screen in Appium with selenium如何在后台推送应用程序并在 Appium 中使用 selenium 从同一屏幕启动
【发布时间】:2016-09-08 13:12:14
【问题描述】:

有没有办法在android自动化中使用带有android驱动程序的Appium来执行以下过程?

从某个特定屏幕按主页按钮。 将应用程序置于后台。 一段时间后从同一屏幕打开应用程序。

如果有人知道,请帮忙。

【问题讨论】:

    标签: android selenium appium


    【解决方案1】:

    iOS 和 Android 均支持以下方法:

    (AppiumDriver)driver.runAppInBackground(10);//put app in background for 10 seconds
    (AppiumDriver)driver.launchApp();//launch the app again
    

    希望对你有帮助!

    【讨论】:

    • driver.runAppInBackground(10);使应用程序在后台运行 10 秒,并在 10 秒后从主屏幕启动它。但我想从我进入后台的同一个屏幕启动它。
    • 为此,你必须在你的能力中使用 no reset 作为 true,如下所示:capabilities.setCapability("--no-reset", true);
    • 它要求我添加演员表。如果我添加一个它不起作用。
    【解决方案2】:
    • 尝试专注于您当前的活动:

      (AppiumDriver)driver.runAppInBackground(10); (AppiumDriver)driver.currentActivity();

    • 尝试开始与您相同的活动:

      (AppiumDriver)driver.runAppInBackground(10);
      (AppiumDriver)driver.startActivity("appPackage","com.example.android.apis", null, null);

    【讨论】:

      【解决方案3】:

      将应用置于后台:

      ((AndroidDriver)driver).runAppInBackground(Duration.ofSeconds(20));
      

      从后台启动应用程序:

      driver.activateApp("app package name");
      

      【讨论】:

        【解决方案4】:

        driver.runAppInBackground(Duration.ofSeconds(10));

        【讨论】:

          【解决方案5】:

          appium_lib ruby​​ 客户端允许您这样做

          background_app 5 其中 5 是您希望应用程序在后台运行的秒数。这将自动在同一屏幕中恢复应用程序。

          【讨论】:

            【解决方案6】:

            这是它的工作原理。

            1. 后台运行应用代码

              ((AppiumDriver)driver).runAppInBackground(Duration.ofSeconds(10));
              
            2. 再次回到当前活动

              ((StartsActivity)driver).currentActivity();
              

            【讨论】:

              【解决方案7】:
              public static void minimizeMaximize() {
              try {
              driver.runAppInBackground(10);
              ((AndroidDriver) driver).startActivity("appPackage", "appActivity");
              } catch (Exception e) {
              e.printStackTrace();
              }
              }
              

              您必须输入您的应用程序包名称和活动名称才能最大化应用程序。 例如:

              public static void minimizeMaximize() {
              try {
              driver.runAppInBackground(10);
              ((AndroidDriver) driver).startActivity("com.example.test", "com.example.LaunchApp");
              } catch (Exception e) {
              e.printStackTrace();
              }
              }
              

              这肯定行得通。

              【讨论】:

                【解决方案8】:

                适合我:((Appium 1.10, Android 8.1))

                2 个选项:

                第一种解决方案:

                driver.runAppInBackground(Duration.ofMillis(300));
                

                关闭弹出窗口后,您使用此行,您的应用将转到后台并返回,您将重新获得焦点到您的应用。

                第二个解决方案:更好的一个:)

                将此行添加到设置中:

                capability.setCapability("noReset", true);
                

                从现在开始,您的应用程序将像普通应用程序一样启动,无需设置重置即没有弹出窗口,您根本不会有焦点问题。

                我希望它也对你有用! :)

                【讨论】:

                  【解决方案9】:

                  这将在执行 Appium 脚本时导航到 Gmail 应用程序。您只需更改应用程序的包名称和活动即可。

                  Activity activity = new Activity("com.google.android.gm", "com.google.android.gm.ConversationListActivityGmail");
                  activity.setStopApp(false);
                  ((AndroidDriver<MobileElement>) driver).startActivity(activity);
                  

                  【讨论】:

                    【解决方案10】:

                    你可以使用这个sn-p的代码

                    ((AppiumDriver)driver).runAppInBackground(Duration.ofSeconds(10));
                    ((StartsActivity)driver).currentActivity();
                    

                    如果它不起作用,请使用最新版本更新您的appium,并尝试使用相同的 sn-p 代码。

                    谢谢

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2018-06-20
                      • 1970-01-01
                      • 1970-01-01
                      • 2017-12-04
                      • 2023-02-10
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多