Невозможно идентифицировать элемент в 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

Ответы на вопрос(3)

Ваш ответ на вопрос