Выполнять действия в зависимости от присутствия на экране (Android JAVA) - PullRequest
0 голосов
/ 09 сентября 2018

Скажем, у меня есть два экрана "A" и "B", я хочу выполнить действие "1", если отображается экран "A", и действие "2", если отображается экран "B". Сначала я проверяю присутствие на экране «A» и «B» с помощью оператора if else, но это не сработало. вот мой код

if(screenAisShown()) 
{
button1.click;
} else if(screenBisShown) {
button2.click;
}

На первом экране итерации A отображается, так что блок if выполняется успешно, а на втором экране B итерации отображается B, но NoSuchElementException выдается для блока if и else if не выполняется

ТИА

Ответы [ 2 ]

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

Существует еще один способ проверки, вы можете использовать currentActivity метод, который возвращает текущее имя экрана Activity как String

if(driver.currentActivity().equals("Screen1 Activity Name")) 
{   
    // wait for button1 code
    if (button1.isDisplayed())
        button1.click;
} 
else if(driver.currentActivity().equals("Screen2 Activity Name")) {
    // wait for button2 code
    if (button2.isDisplayed())
        button2.click;
}
else{
   syso("Screen 1 OR Screen 2 are not in focus)"
}
0 голосов
/ 10 сентября 2018

вы можете создать метод isAScreenDisplayed () и isBScreenDisplayed () .

public static boolean isAScreenDisplayed(){
   try{
       return elementOfAScreen.isDisplayed();
   }catch(Exception e){
       return false;
   }
}

public static boolean isBScreenDisplayed(){
   try{
       return elementOfBScreen.isDisplayed();
   }catch(Exception e){
       return false;
   }
}

Теперь вы можете использовать условие else, чтобы проверить, какой экран отображается.

if(isAScreenDisplayed){
   //do something
}
else if(isBScreenDisplayed){
   //do something
}
...