// Импортировать нужные 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 гораздо больше возможностей и команд, для более сложных сценариев. Подробно и с практическими примерами — официальная документация.