Шпаргалка по Appium

// Импортировать нужные Appium-классы
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.ios.IOSDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

// DesiredCapabilities для Android
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability("platformName", "Android");
desiredCapabilities.setCapability("deviceName", "deviceName");
desiredCapabilities.setCapability("appPackage", "appPackage");
desiredCapabilities.setCapability("appActivity", "appActivity");
AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://localhost:4723/wd/hub"), desiredCapabilities);

// DesiredCapabilities для iOS
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability("platformName", "iOS");
desiredCapabilities.setCapability("deviceName", "deviceName");
desiredCapabilities.setCapability("platformVersion", "platformVersion");
desiredCapabilities.setCapability("app", "path/to/app");
AppiumDriver<MobileElement> driver = new IOSDriver<>(new URL("http://localhost:4723/wd/hub"), desiredCapabilities);

// Найти элемент по его ID
MobileElement elementById = driver.findElement(By.id("elementId"));

// Найти элемент по accessibility id
MobileElement elementByAccessibilityId = driver.findElement(ByAccessibilityId("accessibilityId"));

// Найти элемент по XPath
MobileElement elementByXPath = driver.findElement(By.xpath("//xpath-expression"));

// Найти элемент по имени класса
MobileElement elementByClassName = driver.findElement(By.className("className"));

// Найти элемент по его имени
MobileElement elementByName = driver.findElement(By.name("elementName"));

// Найти элемент по Android UI Automator
MobileElement elementByAndroidUIAutomator = driver.findElement(MobileBy.AndroidUIAutomator("androidUIAutomatorExpression"));

// Найти элемент по iOS-предикату
MobileElement elementByiOSPredicate = driver.findElement(MobileBy.iOSNsPredicateString("iOSPredicateString"));

// Ввести текст в поле
elementById.sendKeys("text to type");

// Кликнуть элемент
elementByXPath.click();

// Получить текст элемента
String text = elementByClassName.getText();
System.out.println(text);

// Получить значение атрибута элемента
String attributeValue = elementByName.getAttribute("attributeName");
System.out.println(attributeValue);

// Ждать, пока элемент станет видимым
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOf(elementById));

// Выполнить жест пролистывания (свайпа)
driver.swipe(startX, startY, endX, endY, duration);

// Выполнить жест нажатия/касания (тапа)
TouchAction action = new TouchAction(driver);
action.tap(tapOptions().withElement(element(elementByAccessibilityId))).perform();

// Выполнить жест длительного нажатия (long press)
action.longPress(longPressOptions().withElement(element(elementById)).withDuration(ofSeconds(2))).release().perform();

// Снять скриншот
File screenshot = driver.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(screenshot, new File("path/to/save/screenshot.png"));

// Закрыть приложение
driver.closeApp();

// Выйти из драйвера и закрыть сессию
driver.quit();

Источник


Конечно, это лишь базовая шпаргалка, для начинающих. В Appium гораздо больше возможностей и команд, для более сложных сценариев. Подробно и с практическими примерами — официальная документация


Канал Тестировщик | IT — твой попутчик в мире QA

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

🔥 Популярное

💬 Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас