Я автоматизирую мобильное приложение через appium, интегрированный с веб-драйвером selenium + testng. Теперь проблема, с которой я столкнулся, заключается в том, что у меня есть список задач, для каждой задачи у меня есть ссылка с тем же именем (например, VIEW), тем же именем класса (например, android.widget.TextView). Теперь я хочу нажать на эту конкретную ссылку «ПРОСМОТР», для которой я передаю имя задачи. Я использую следующий код, но он выдает исключение java.lang.IndexOutOfBoundsException: Index: 6, Size: 3 error.

    List<WebElement> list = driver.findElements(By.xpath("//android.widget.TextView[@enabled='true']")); //returing all the tasks 
        for(int i = 0 ; i< list.size() ; i++){

        String message1 = list.get(i).getText();
        //System.out.println(message1);
        if(message1.contains(ac+"-"+cnic)){
        Thread.sleep(10000);
        driver.findElements(By.xpath("//android.widget.TextView[@text='VIEW']")).get(i).click();
        }
        }
1
Soban Ahmed Khan 9 Окт 2019 в 16:13

2 ответа

Вы перебираете «все задачи», а затем используете этот индекс, чтобы получить элемент в другом списке - списке задач с именем «VIEW». Если я правильно понял, вам следует перейти непосредственно к задачам с просмотром имени. Кроме того, вы можете использовать цикл foreach, как сказал Шубхам, или в java 8 поток с foreach ().

2
Thomas Martin 9 Окт 2019 в 16:31

Вы можете использовать цикл foreach вместо обычного цикла

 for (WebElement element : list ) {
        String message1 = element.getText();
        //System.out.println(message1);
        if(message1.contains(ac+"-"+cnic)){
        Thread.sleep(10000);
        element.click();
     }
}
1
Shubham Jain 9 Окт 2019 в 16:58
Спасибо за ответ .... Теперь он щелкает по самой первой задаче в списке. Я хочу щелкнуть по этой конкретной задаче, текст которой я сопоставляю через ac и cnic.
 – 
Soban Ahmed Khan
9 Окт 2019 в 16:58
Я предполагаю, что мы пропустили один закрывающий тег} в коде условия if .. обновленный код .. скопируйте и попробуйте еще раз »
 – 
Shubham Jain
9 Окт 2019 в 16:59
Я добавил этот тег. Я думаю, вы не поняли мою точку зрения. Имя задачи и ссылка Просмотр имеют разные пути Xpath. Код, которым вы поделились, щелкает имя конкретной задачи (которое я сопоставляю через ac + cnic), а не щелкает ссылку ПРОСМОТР, которая отображается перед каждой задачей.
 – 
Soban Ahmed Khan
9 Окт 2019 в 17:26