Изучение Appium и ADB: раскрытие методов получения текущей активности

В мире мобильного тестирования и автоматизации Appium и ADB (Android Debug Bridge) — это мощные инструменты, которые позволяют разработчикам и тестировщикам взаимодействовать с устройствами и приложениями Android. Одной из распространенных задач является программное получение текущей активности приложения. В этой статье мы углубимся в различные методы использования Appium и ADB для достижения этой цели и предоставим примеры кода для иллюстрации каждого подхода.

Метод 1: использование метода getCurrentActivity() Appium
Appium предоставляет удобный метод getCurrentActivity(), который позволяет нам получать текущую активность приложения Android. Вот пример того, как его можно использовать в Java:

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.Activity;
// Create an instance of the AndroidDriver
AndroidDriver driver = new AndroidDriver();
// Get the current activity
Activity currentActivity = driver.currentActivity();
String activityName = currentActivity.toString();
System.out.println("Current Activity: " + activityName);

Метод 2: использование команды оболочки ADB
ADB предлагает интерфейс командной строки для взаимодействия с устройствами Android. Мы можем использовать команду «dumpsys» для получения информации о текущей активности. Вот пример использования ADB:

adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'

Эта команда вернет информацию о целевом действии и приложении. Вы можете выполнить его с помощью терминала или интегрировать в свои сценарии автоматизации.

Метод 3: анализ вывода команды оболочки ADB
Если вы предпочитаете получать имя действия программно с помощью ADB, вы можете выполнить команду и проанализировать вывод в своем коде. Вот пример на Python:

import subprocess
# Execute the ADB command
output = subprocess.check_output("adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'", shell=True)
# Parse the output to extract the activity name
activity_line = output.split(b"\n")[0]
activity_name = activity_line.split(b" ")[-1].decode()
print("Current Activity:", activity_name)

В этой статье мы рассмотрели различные методы получения текущей активности приложения Android с помощью Appium и ADB. Мы обсудили использование метода getCurrentActivity() Appium, непосредственное выполнение команды оболочки ADB и программный анализ вывода. Эти методы обеспечивают гибкость и возможности в зависимости от ваших требований к тестированию или автоматизации. Используя эти методы в своих проектах, вы можете получить ценную информацию о текущем состоянии ваших приложений Android.

Не забудьте интегрировать эти методы в свои среды тестирования и сценарии автоматизации, чтобы расширить возможности тестирования мобильных приложений!