Гарантирует ли функция 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