Невозможно выбрать кнопку бокового меню в TestNG (Appium, Android) - PullRequest
1 голос
/ 05 мая 2019

Красное поле содержит кнопку, к которой я хочу получить доступ с помощью драйвера Я новичок в этом, но, насколько я искал, нет универсального способа нажимать на боковые панели вашего приложения.

В настоящее время я пытаюсь проверить приложение Piazza (для присвоения колледжа). Во-первых, нет никаких resource_id для пунктов меню / списка, методы, которые я попробовал, не работают для меня. Кто-нибудь может подсказать, пожалуйста, по поводу выбора таких кнопок на боковой панели

Все прокомментированные строки - это существующие в сети решения, которые я уже попробовал.

 @BeforeSuite
  public void setupAppium() throws MalformedURLException {
        final String URL_STRING = "http://0.0.0.0:4723/wd/hub";  
        url = new URL(URL_STRING);
        capabilities = new DesiredCapabilities();
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"Android Device");
        capabilities.setCapability(MobileCapabilityType.APP, "/Users/nomi/Desktop/piazza.apk");
        capabilities.setCapability(MobileCapabilityType.NO_RESET, true);
        capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
        driver = new AndroidDriver<MobileElement>(url, capabilities);
        driver.resetApp();
  }




  @Test ( enabled=true) public void logIn() throws InterruptedException   {

      driver.findElement(By.id("com.piazza.android:id/Login_editText_email")).sendKeys("l154053@lhr.nu.edu.pk");
      driver.findElement(By.id( "com.piazza.android:id/Login_editText_password")).sendKeys("viscabarca");
      driver.findElement(By.id( "com.piazza.android:id/Login_button_login" )).click();


  }




  @Test (enabled=true) public void getList() throws InterruptedException {
      //driver.findElementsByAccessibilityId("Open navigation drawer").get(0).click();
      //driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //driver.findElement(By.xpath("//*[@content-desc='"+"Open drawer"+"']")).click();
      // driver.manage().timeouts().wait(2);
      // driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

        //driver.findElement(By.id( "com.piazza.android:id/AddClassMenu_addButton" )).click();
          //List<MobileElement> list = driver.findElements(By.id("com.piazza.android:id/list"));
          //list.get(0).click();
          //  System.out.print(list.size());
          //List nameOfList = driver.findElements(By.id("id of relative layout"));
        List<MobileElement> list = driver.findElements(By.id("com.piazza.android:id/list"));
          //list.get(0).click();
    System.out.print(list.size());
      }



}

Функция list.size () в функции get list возвращает size = 0, который она выполняет перед функцией входа в систему. Я использовал ключевое слово зависимости от, но оно по-прежнему возвращает 0. Кроме того, я не знаю, какой список выбирается по этому идентификатору.

1 Ответ

0 голосов
/ 06 мая 2019

Поскольку в элементе content desc , вы можете получить доступ к элементу, используя findElementByAccessibilityId () .

driver.findElementByAccessibilityId("Open Navigation drawer")click();

Я предлагаю вам использовать Appium Desktop Inspector вместо uiautomatorviewer . Он покажет вам любой уникальный идентификатор элемента, а также xpath.

...