Невозможно идентифицировать элемент в WEBVIEW в iOS приложении Hyrid с помощью Appium на реальном устройстве.
Я пытался автоматизировать сборку гибридного приложения, используя ionic2 / Angular2 и машинопись.
Я использую C # для написания кода. тестирование в BDD - specflow Версии: iOS: 9.3.1 Xcode: 7.3 Appium: 1.4.13
Я не могу определить элементы после переключения контекста в WEBVIEW.
Вызов IOSDriver с помощью кода ниже
private IOSDriver<IOSElement> driver = null;
public IOSDriver<IOSElement> GetDriver(string platformVersion, string deviceName, string udid ,string appPath, string serverUri)
{
Capabilities iosCapabilities = new Capabilities();
DesiredCapabilities capabilities = iosCapabilities.Get(platformVersion, deviceName, udid, appPath);
driver = new IOSDriver<IOSElement>(new Uri(serverUri), capabilities, TimeSpan.FromSeconds(Constants.DriverWaitTime));
driver.Manage ().Timeouts ().ImplicitlyWait (TimeSpan.FromSeconds(Constants.ImplicitWaitTime));
var contextNames = driver.Contexts;
driver.Context = contextNames[1];
driver.FindElement(By.Xpath(locator)).Click();
}
Установка возможностей как
private DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability ("appium-version", Constants.AppiumVersion);
capabilities.SetCapability ("platformName", Constants.PlatformName);
capabilities.SetCapability("autoWebView", "true");
capabilities.SetCapability("browserName", "iOS");
capabilities.SetCapability ("platformVersion", Constants.PlatformVersion);
capabilities.SetCapability("deviceName", deviceName);
capabilities.SetCapability("app", appPath);
capabilities.SetCapability("udid", udid);
Я правильно настраиваю возможности?
Решение пробовал:Я проверил, используя возможность browserName как пустое / сафари, но не сработалоКроме того, я установил ios-webkit-debug-proxy и запустил прокси с помощью терминала в фоновом режиме на моем MacПроблема в том, что я не могу определить элементы в WEBVIEW.Что я делаю
После запуска приложения в appium inspector я вижу все элементы и пытаюсь нажать на текстовое поле, чтобы ввести какое-то значение
Xpath текстового поля (как я могу видеть в окне инспектора appium):«// UIAApplication1/ UIAWindow1/ UIAScrollView2/ UIAWebView1/ UIATextField1"
var contextNames = driver.Contexts
дает мне список представлений (в моем случае 2 представления: NATIVE_APP, WEBVIEW_1) Контекст WebView динамически обновляется с 1,2,3 и т. д.
Как только я позвоню
diver.Context=contextNames[1]; //setting context to WEBVIEW
и обновить инспектор Appium Я не могу увидеть / определить ни одного элемента. Все исчезает.
Почему я не могу видеть / идентифицировать элементы после перехода на веб-просмотр. (Примечание: как только я переключаюсь обратно на driver.Context = "NATIVE_APP", каждый элемент становится видимым в Инспекторе приложений, но я не могу нажать)
Это показывает ошибку как «Элемент не может быть найден, используя данный параметр поиска»
Также вручную, когда я пытаюсь нажать или отправить ключи с помощью инспектора приложений, это не позволяет мне сделать это (после запуска приложения вручную с помощью кнопки инспектора). В чем проблема здесь. Помощь будет высоко ценится
Снимок экрана инспектора Appium:
Сообщение об ошибке, отображаемое в окне приложения:
Вот полные журналы Appium (ОШИБКА)
Ссылка журналов Appium, когда не удается идентифицировать элементы в WEBVIEW