// region Launching app
  private void launchApp(String appLaunchIconText) throws UiAutomatorDaemonException {
    d(
        uiaDaemon_logcatTag,
        "Launching app by navigating to and clicking icon with text " + appLaunchIconText);

    boolean clickResult;
    try {
      UiObject app = navigateToAppLaunchIcon(appLaunchIconText);
      Log.v(uiaDaemon_logcatTag, "Pressing the " + appLaunchIconText + " app icon to launch it.");
      clickResult = app.clickAndWaitForNewWindow();
      waitForGuiToStabilize();
    } catch (UiObjectNotFoundException e) {
      Log.w(
          uiaDaemon_logcatTag,
          String.format(
              "Attempt to navigate to and click on the icon labeled '%s' to launch the app threw an exception: %s: %s",
              appLaunchIconText, e.getClass().getSimpleName(), e.getLocalizedMessage()));
      d(uiaDaemon_logcatTag, "Pressing 'home' button after failed app launch.");
      this.device.pressHome();
      waitForGuiToStabilize();
      return;
    }

    if (clickResult) waitForGuiToStabilize();
    else
      Log.w(
          uiaDaemon_logcatTag,
          (String.format(
              "A click on the icon labeled '%s' to launch the app returned false",
              appLaunchIconText)));
  }
  private UiObject navigateToAppLaunchIcon(String appLaunchIconName)
      throws UiObjectNotFoundException {
    // Simulate a short press on the HOME button.
    this.device.pressHome();

    // We’re now in the home screen. Next, we want to simulate
    // a user bringing up the All Apps screen.
    // If you use the uiautomatorviewer tool to capture a snapshot
    // of the Home screen, notice that the All Apps button’s
    // content-description property has the value "Apps".  We can
    // use this property to create a UiSelector to find the button.
    UiObject allAppsButton = this.device.findObject(new UiSelector().description("Apps"));
    // Simulate a click to bring up the All Apps screen.
    allAppsButton.clickAndWaitForNewWindow();

    // In Android 6 default apps menu (Nexus 5X) there is a search box to locate the application
    // Use it to search for the application
    UiObject searchTextbox =
        this.device.findObject(
            new UiSelector()
                .resourceId("com.google.android.googlequicksearchbox:id/search_box_proxy"));
    searchTextbox.setText(appLaunchIconName);
    waitForGuiToStabilize();

    // The application (if found), will be the first item in the application list container
    // Type: com.google.android.googlequicksearchbox:id/icon
    UiObject appListview =
        this.device.findObject(
            new UiSelector()
                .resourceId("com.google.android.googlequicksearchbox:id/apps_list_view"));

    UiObject selectedItem = appListview.getChild(new UiSelector().index(0));
    d(uiaDaemon_logcatTag, selectedItem.getContentDescription());
    return selectedItem;
  }
  @Test
  public void testJump() throws UiObjectNotFoundException {
    UiAutoUtil.openMyApp(device);

    UiObject et = device.findObject(new UiSelector().className("android.widget.EditText"));
    et.setText("Tomorrow");

    UiObject btnJump = device.findObject(new UiSelector().text("Open activity and change text"));
    btnJump.clickAndWaitForNewWindow();

    UiObject tv2 =
        device.findObject(new UiSelector().resourceId("cn.six.aut:id/tv_jumpto_display"));
    Assert.assertEquals("Tomorrow", tv2.getText());
  }
예제 #4
0
  public void testMenu() throws Exception {

    // Open Apps
    Thread.sleep(2000);
    myDevice.pressHome();
    UiObject2 appsButton = myDevice.findObject(By.desc("Apps"));
    appsButton.click();
    Thread.sleep(5000);

    // Click TUM Campus App
    listView = new UiScrollable(new UiSelector());
    listView.setAsVerticalList();
    listView.setMaxSearchSwipes(10);
    listView.scrollTextIntoView("TUM Campus App");
    listView.waitForExists(5000);
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.TextView.class.getName()), "TUM Campus App");
    listViewItem.clickAndWaitForNewWindow(5000);

    // Goto menu and Show Logged User
    Thread.sleep(3000);
    UiObject obj = myDevice.findObject(new UiSelector().className("android.widget.ImageButton"));
    obj.clickAndWaitForNewWindow(599);
    listView = new UiScrollable(new UiSelector());
    listView.scrollToBeginning(10, 5);
    Thread.sleep(6000);

    // Come out from Menu
    myDevice.click(myDevice.getDisplayWidth() - 50, myDevice.getDisplayHeight() - 100);
    Thread.sleep(1000);

    // Show Current News
    listView.scrollToEnd(10, 150);
    Thread.sleep(3000);

    // Show one news for example movie
    Thread.sleep(2000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("Codename U.N.C.L.E.");
    listView.waitForExists(3000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.widget.FrameLayout").index(1));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className("android.widget.TextView"), "Codename U.N.C.L.E.");
    listViewItem.click();
    Thread.sleep(5000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollToEnd(10, 150);

    // Back to main application
    myDevice.pressBack();
    Thread.sleep(2000);

    // Goto menu
    obj = myDevice.findObject(new UiSelector().className("android.widget.ImageButton"));
    obj.clickAndWaitForNewWindow(599);
    Thread.sleep(4000);

    // Goto My lecture
    //  Thread.sleep(3000);
    listView.scrollTextIntoView("My Lectures");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.CheckedTextView.class.getName()),
            "My Lectures");
    listViewItem.click();

    // Select One Lecture
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView(
        "Praktikum - Betriebssysteme - Google Android (IN0012, IN2106, IN4004)");
    listView.waitForExists(3000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.view.ViewGroup").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.TextView.class.getName()),
            "Praktikum - Betriebssysteme - Google Android (IN0012, IN2106, IN4004)");
    listViewItem.click();

    // Lecture Appointments
    Thread.sleep(3000);
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.Button.class.getName()),
            "Lecture Appointments");
    listViewItem.click();
    Thread.sleep(2000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollToEnd(10, 150);
    Thread.sleep(1000);
    myDevice.pressBack();
    myDevice.pressBack();
    myDevice.pressBack();

    // Again Menu
    Thread.sleep(3000);
    obj = myDevice.findObject(new UiSelector().className("android.widget.ImageButton"));
    obj.clickAndWaitForNewWindow(599);
    Thread.sleep(6000);

    // Choice MVG
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("MVV");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.CheckedTextView.class.getName()), "MVV");
    listViewItem.click();

    // click search button
    Thread.sleep(2000);
    obj = myDevice.findObject(new UiSelector().className("android.widget.ImageView"));
    obj.clickAndWaitForNewWindow(599);
    Thread.sleep(6000);

    // Type Studentenstadt
    obj = myDevice.findObject(new UiSelector().className("android.widget.EditText"));
    obj.setText("Studentenstadt");
    Thread.sleep(2000);
    myDevice.pressEnter();
    Thread.sleep(3000);

    // show all options
    listView = new UiScrollable(new UiSelector());
    listView.scrollToEnd(10, 150);
    Thread.sleep(2000);
    myDevice.pressBack();
    myDevice.pressBack();
    myDevice.pressBack();

    // Goto menu
    Thread.sleep(3000);
    obj = myDevice.findObject(new UiSelector().className("android.widget.ImageButton"));
    obj.clickAndWaitForNewWindow(599);
    Thread.sleep(6000);

    // Open Organization
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("Organizations");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.CheckedTextView.class.getName()),
            "Organizations");
    listViewItem.click();

    // Open Informatik
    Thread.sleep(2000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("Informatics");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.TextView.class.getName()), "Informatics");
    listViewItem.click();

    // Show Informatik
    Thread.sleep(2000);
    listView.scrollToEnd(10, 150);
    Thread.sleep(1000);
    myDevice.pressBack();

    // Open TUM Board of Management
    Thread.sleep(2000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("TUM Board of Management");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.TextView.class.getName()),
            "TUM Board of Management");
    listViewItem.click();

    // show tum board of management
    Thread.sleep(2000);
    listView.scrollToEnd(10, 150);
    Thread.sleep(1000);
    myDevice.pressBack();
    myDevice.pressBack();

    // Goto menu
    Thread.sleep(3000);
    obj = myDevice.findObject(new UiSelector().className("android.widget.ImageButton"));
    obj.clickAndWaitForNewWindow(599);
    Thread.sleep(6000);

    // Open Opening Hours
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("Opening Hours");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.CheckedTextView.class.getName()),
            "Opening Hours");
    listViewItem.click();

    // Opne Libraries
    Thread.sleep(1000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("Libraries");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.TextView.class.getName()), "Libraries");
    listViewItem.click();

    // Show libraries
    Thread.sleep(1000);
    listView.scrollToEnd(10, 150);
    Thread.sleep(1000);
    myDevice.pressBack();
    myDevice.pressBack();

    // Goto menu
    Thread.sleep(3000);
    obj = myDevice.findObject(new UiSelector().className("android.widget.ImageButton"));
    obj.clickAndWaitForNewWindow(599);
    Thread.sleep(6000);

    // select Plans
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("Plans");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.CheckedTextView.class.getName()), "Plans");
    listViewItem.click();

    // Open MVV Plan
    Thread.sleep(1000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("MVV Train-Network");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.TextView.class.getName()),
            "MVV Train-Network");
    listViewItem.clickAndWaitForNewWindow(6000);
    Thread.sleep(2000);
    myDevice.pressBack();

    // Opne Garcing Plan
    Thread.sleep(1000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("Campus Garching");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.TextView.class.getName()), "Campus Garching");
    listViewItem.clickAndWaitForNewWindow(6000);
    Thread.sleep(2000);
    myDevice.pressBack();
    myDevice.pressBack();

    // Goto Settings
    listView = new UiScrollable(new UiSelector());
    listViewItem =
        listView.getChild(new UiSelector().resourceId("de.tum.in.tumcampus:id/action_settings"));
    listViewItem.clickAndWaitForNewWindow(1000);

    // Open Default Campus
    Thread.sleep(1000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("Default campus");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.TextView.class.getName()), "Default campus");
    listViewItem.clickAndWaitForNewWindow(3000);

    // Change Campus
    Thread.sleep(1000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("Main Campus");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.CheckedTextView.class.getName()),
            "Main Campus");
    listViewItem.click();
    Thread.sleep(2000);

    // Change Campus to Garching Again
    Thread.sleep(1000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("Default campus");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.TextView.class.getName()), "Default campus");
    listViewItem.clickAndWaitForNewWindow(3000);
    Thread.sleep(2000);

    Thread.sleep(1000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("Campus Garching");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.CheckedTextView.class.getName()),
            "Campus Garching");
    listViewItem.click();
    Thread.sleep(2000);

    // State During Class
    Thread.sleep(1000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("State during lectures");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.TextView.class.getName()),
            "State during lectures");
    listViewItem.clickAndWaitForNewWindow(3000);
    Thread.sleep(2000);

    // Change State
    Thread.sleep(1000);
    listView = new UiScrollable(new UiSelector());
    listView.scrollTextIntoView("Silent");
    listView.waitForExists(6000);
    Thread.sleep(3000);
    // listViewItem = listView.getChild(new
    // UiSelector().className("android.support.v7.widget.LinearLayoutCompat").index(3));
    listViewItem =
        listView.getChildByText(
            new UiSelector().className(android.widget.CheckedTextView.class.getName()), "Silent");
    listViewItem.click();
    Thread.sleep(2000);

    myDevice.pressBack();
  }