как установить флажок в appium, когда нет уникального идентификатора / имени класса? - PullRequest
0 голосов
/ 22 сентября 2018

Как установить флажок на скриншоте ниже?enter image description here

Пробуется ниже возможного, но не работает.

driver.findElementByXPath("//android.widget.TextView[@text='World Music']").click();
driver.findElementByXPath("//android.widget.TextView[@index='11']").click();
driver.findElementByAndroidUIAutomator("text(\"World Music\")").click();

Ответы [ 3 ]

0 голосов
/ 24 сентября 2018

Один из подходов, который я могу придумать, - это найти индекс флажка, который вы хотите щелкнуть, и щелкните флажок этого индекса.

Это можно проиллюстрировать, как показано ниже:

List <MobileElement> textLabels = driver.findElements (By.className ("android.widget.TextView");
List <MobileElement> checkboxes = driver.findElements (By.className ("android.widget.Checkbox");
for (int i = 0; i < textLabels.size (); i++) {
  MobileElement label = textLabels.get (i);
  if (label.getText ().equals ("<your checkbox label>")) {
    checkboxes.get (i).click ();
  }
}

Здесь вы также можете реализовать логику для проверки нескольких флажков.

0 голосов
/ 24 сентября 2018

Я попробовал приведенный ниже код, используя координаты, он работал для меня ...

TouchAction t = new TouchAction(driver);
        wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.id("com.raaga.android:id/tv_language")));
        t.tap(int x, int y).perform();

Если есть какой-то другой лучший подход, пожалуйста, напишите ..

0 голосов
/ 24 сентября 2018

Проверьте ваше приложение, используя Appium Desktop Inspector .Он покажет вам идентификатор доступности, идентификатор или xpath.Если у вас нет уникального идентификатора или идентификатора доступности, вы можете использовать xpath , показанный в Инспекторе рабочего стола appium.

...