@iOSFindBy () не работает с wait.until () - PullRequest
0 голосов
/ 25 сентября 2019

У меня проблема с pageFactory.Не в состоянии найти решение для этого.Работа над мобильным приложением и использование @AndroidFindBy () и @iOSFindBy ().В основном у меня есть и приложение, которое имеет домашнюю страницу, которая содержит логотип.Я пытаюсь найти этот логотип с помощью теста.Перед домашней страницей есть SplashScreen.Итак, мне нужно дождаться окончания SplashScreen, прежде чем появится HomePage с логотипом.Проблема следующая:

Элемент выглядит следующим образом:

@AndroidFindBy(id = "logo")
@iOSFindBy(accessibility = "app_logo") //Also tried with id instead of accessibility
private WebElement logoIcon;

public void getLogoIcon() {
    wait.until(ExpectedConditions.visibilityOf(logoIcon));
}

Чем существует два способа вызова элемента:

public void checkLogoIcon1(){
   getLogoIcon();
}

public void checkLogoIcon2(){
   logoIcon.isDisplayed();
}

Вот загвоздка,На Android я должен использовать checkLogoIcon1 (), потому что он должен ждать окончания SplashScreen, чтобы найти элемент.Что имеет смысл, верно?И это работает для Android.iOS терпит неудачу там.По какой-то причине iOS будет ждать завершения SplashScreen, он попадет на нужную страницу, там будет элемент с этим идентификатором, но он завершится ошибкой:

org.openqa.selenium.TimeoutException: ожидаемое условие не выполнено: ожидание видимости Location by By.chained ({By.AccessibilityId: app_logo}) (попытка в течение 15 секунд с интервалом 500 миллисекунд)

НаС другой стороны, когда я использую checkLogoIcon2 (), он не работает на Android, что также имеет смысл.Запускается приложение, запускается SplashScreen, он пытается найти логотип, его там нет, он не работает.Но тот же самый метод теперь работает на iOS !!Он будет ждать окончания SplashScreen, попадет на HomePage, найдет элемент с этим идентификатором и пройдет.Почему?Я что-то упустил или есть ошибка в PageFactory / Appium / Selenium?

Надеюсь, это не дублирующий вопрос.Я искал вокруг и не нашел ничего похожего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...