это элемент отображается Android AppIm автоматизации Java - PullRequest
0 голосов
/ 19 мая 2019

Во-первых, мне нужно проверить, отображается ли элемент com.simplemobiletools.gallery:id/text_view в течение 2-3 секунд. Во-вторых, если отображается IS , щелкните элемент android:id/button2, но если отображается ISNT , продолжайте выполнять код.

Какие команды я использую для этого? Заранее спасибо.

Ответы [ 2 ]

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

а.ждать элемента в течение 3 секунд с опросом 1 секунда или меньше, если требуется

b.если произошло исключение, значит, элемент не отображается в течение 3 секунд

c.проверьте, не является ли webelement нулевым, только щелкните по нему

try {
            WebElement textView = 
             driver.findElement(By.id("com.simplemobiletools.gallery:id/text_view"));
            new FluentWait<WebElement>(textView)
                .withTimeout(3, TimeUnit.SECONDS)
                .pollingEvery(1, TimeUnit.SECONDS)
                        .until(new Function<WebElement, Boolean>() {
                            @Override
                            public Boolean apply(WebElement element) {
                                return element.isDisplayed();
                            }
                        });
        }
catch(TimeoutException e){
 System.out.println("TimeoutException exception occured after 3 sec);
}

if (textView !=null){
// we do not bother about time here, 
// just in case findElement returned something we can click here
driver.findElement(By.id("android:id/button2")).click();
}
0 голосов
/ 20 мая 2019

Создайте метод, подобный следующему:

public boolean isElementDisplayed(MobileElement el){
     try{
        return el.isDisplayed();
     }catch(Exception e){
        return false;
     }
}

Затем вы можете проверить, отображается ли элемент, вызвав вышеуказанный метод:

MobileElement element = driver.findElementById('com.simplemobiletools.gallery:id/text_view');
boolean isElementVisible = isElementDisplayed(element);
if(isElementVisible){
   //click element
   driver.findElementById("android:id/button2").click();
}else{
   //element is not visible... continue Test

}

Если вы не используете try catch, то исключение будет выдано, если элемент не найден.

...