Гарантирует ли функция APPIUM "autoWebView" правильность WEB_VIEW из нескольких веб-просмотров относительно приложения cordova?

Я работаю над автоматизацией приложения для iOS с помощью Appium-Java.

В документации к appium было упомянуто, что для приложения на базе Cordova должна использоваться возможность APPIUM "autoWebView".

В нашем случае приложение продолжает укладывать несколько WebView, так как пользователь продолжает перемещаться по экранам. И в этом случае обычно у меня есть 1 Native View & 3-4 WebViews. Поэтому, если я установлю autoWebView, он будет гарантировать, что он всегда будет указывать на правильное веб-представление (т. Е. Веб-представление, которое содержит HTML-код для текущей страницы)

2 ответа

Решение

Для нашего уникального требования (гибридное приложение на основе Cordova, создающее несколько веб-просмотров) я создал функцию многократного использования, чтобы указать на предполагаемый WebView:

 public boolean switchToMeaningfulWEBVIEWUsingPageTitle(final String title) {
    Set<String> contextNames = appiumDriver.getContextHandles();
    List<MobileElement> elements = null;

    String defaultContext = appiumDriver.getContext();

    for (String contextName : contextNames) {
            System.err.println("\n ** DEBUG: contextName = "+contextName);
        appiumDriver.context(contextName);
        appiumDriver.manage().timeouts().implicitlyWait(6, TimeUnit.SECONDS);
        if (contextName.contains("WEBVIEW")) {
            String metaTitle = appiumDriver.getTitle();
            if (metaTitle.equalsIgnoreCase(title)) {
                if(appiumDriver.getPageSource().trim().contains("<body></body></html>")) {
                    continue;
                }else{
                    return true;
                }
            }
        }
    }
   appiumDriver.context(defaultContext);
    return false;
}

В основном, когда мы работаем над WebView на последней странице, мы переключаемся на соответствующий webView из стека веб-просмотров. Заголовок HTML используется в качестве ссылки, так как мы пытаемся сохранить его уникальным, но что-то еще может быть использовано для уникальной ссылки. Спасибо

Надеюсь, вы используете ios_webkit_debug_proxy для обработки веб-просмотра, встроенного в собственное приложение ios. Также переключайте контекст в вашем скрипте, когда меняются страницы приложения ("NATIVE" или "WEBVIEW").

Посмотрите эту ссылку https://github.com/google/ios-webkit-debug-proxy

Другие вопросы по тегам