Как написать xpath (получить локатор) для автоматизации appium android? - PullRequest
0 голосов
/ 07 августа 2020

Я пишу автоматизацию appium для android приложения, у него нет правильного xpath, имени класса или идентификатора.

Даже в изображении вы можете четко проверить это, когда я нажму кнопку «Начало работы». Щелкает весь кадр. Я также прикрепил XML.

enter image description here

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
          

Ответы [ 3 ]

1 голос
/ 12 августа 2020

Кнопка, которую вы собираетесь нажать, находится внутри android.webkit.WebView. Другими словами, тестируемое приложение является гибридным приложением Android.

Чтобы идентифицировать элементы WebView, вы должны сначала переключиться на WebView.

Java код для автоматизации гибридных приложений:

Set<String> contextNames = driver.getContextHandles();
for (String contextName : contextNames) {
    System.out.println(contextName); //prints out something like NATIVE_APP, WEBVIEW_1
}

// Switching to webview
driver.context(contextNames.toArray()[1]); // set context to WEBVIEW_1

// do some web testing
String myText = driver.findElement(By.cssSelector(".green_button")).click();

// Switching back to NATIVE_APP
driver.context("NATIVE_APP");

// do more native testing if we want
driver.findElement(By.name("hello")).click();

driver.quit();

Для получения дополнительной информации посетите официальные документы https://appium.io/docs/en/writing-running-appium/web/hybrid/

1 голос
/ 18 августа 2020

Похоже на гибридное приложение. При выполнении необходимо переключаться в контекст веб-представления. Для поиска элементов. После запуска приложения необходимо выполнить проверку с помощью удаленной отладки. https://developers.google.com/web/tools/chrome-devtools/remote-debugging

0 голосов
/ 10 августа 2020

xpath: 'иерархия / android .widget.FrameLayout / android .widget.LinearLayout / android .widget.FrameLayout / android .widget.FrameLayout / android .webkit.WebView / android .webkit.WebView / android .view.View '

, который можно упростить до' иерархии // android .view.View '

, но сообщение об ошибке говорит вам не использовать xPath

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