Это код
for (loopVal = 1; loopVal < endVal; loopVal++) {
MobileElement followButton = (MobileElement) driver.findElement(By.xpath("//android.widget.ListView[@index='0']//android.widget.FrameLayout[@index='"+loopVal+"']//android.widget.LinearLayout[@index='0']//android.widget.FrameLayout[@index='2']//android.widget.TextView[@index='0']"));
String followOrNot = followButton.getText();
System.out.println(followOrNot + " " + loopVal);
}
Если MobileElement followButton
не найден, выдает ошибку и остальная часть кода не будет выполнена
Мне нужно проверить если followButton
присутствует до того, как моя программа запустит .getText()
на followButton
Если я попытаюсь окружить followButton
блоком try-catch
try {
MobileElement followButton = (MobileElement) driver.findElement(By.xpath("//android.widget.ListView[@index='0']//android.widget.FrameLayout[@index='"+loopVal+"']//android.widget.LinearLayout[@index='0']//android.widget.FrameLayout[@index='2']//android.widget.TextView[@index='0']"));
} catch(org.openqa.selenium.NoSuchElementException e) {
//handle error
}
Тогда я получу ошибка на String followOrNot.getText()
, которая говорит
followButton не может быть решена
Если я пытаюсь использовать .isEmpty на followButton
MobileElement followButton = (MobileElement) driver.findElement(By.xpath("//android.widget.ListView[@index='0']//android.widget.FrameLayout[@index='"+loopVal+"']//android.widget.LinearLayout[@index='0']//android.widget.FrameLayout[@index='2']//android.widget.TextView[@index='0']"));
if(driver.findElements(followButton).isEmpty()) {
//handle error
}
Тогда Я получаю сообщение об ошибке findElements
, в котором говорится
Метод findElements (By) в типе AppiumDriver не применим для аргументов (MobileElement)
, если я пытаюсь использовать .isDisplayed
на followButton
MobileElement followButton = (MobileElement) driver.findElement(By.xpath("//android.widget.ListView[@index='0']//android.widget.FrameLayout[@index='"+loopVal+"']//android.widget.LinearLayout[@index='0']//android.widget.FrameLayout[@index='2']//android.widget.TextView[@index='0']"));
if(followButton.isDisplayed()) {
//do nothing
} else {
//handle error
}
, тогда проблема заключается в том, что, если followButton
не найден, будет выдана ошибка, считая остальной код бесполезным
все, что я пытаюсь сделать, это проверить наличие followButton
перед выполнением любой другой операции с followButton
Я задал вопрос, похожий на этот один, но не получил никаких полезных ответов, мой единственный вариант - снова спросить.
Кто-нибудь может помочь?