As Desired Capabilities são um conjunto de configurações que informam ao servidor Appium como iniciar a sessão de teste: qual plataforma, qual dispositivo, qual app, qual driver usar, entre outros.
No Appium 2.x, o modo recomendado é usar as classes de Options (UiAutomator2Options, XCUITestOptions), mas a API de DesiredCapabilities ainda funciona.
| Capability | Descrição |
|---|---|
platformName |
Sistema operacional: Android ou iOS |
appium:deviceName |
Nome ou ID do dispositivo/emulador |
appium:automationName |
Driver: UiAutomator2 (Android) ou XCUITest (iOS) |
appium:app |
Caminho absoluto para o APK/IPA |
appium:appPackage |
Package do app (Android) |
appium:appActivity |
Activity inicial (Android) |
appium:bundleId |
Bundle ID do app (iOS) |
appium:udid |
ID único do dispositivo físico |
appium:platformVersion |
Versão do OS (ex: 13.0) |
import io.appium.java_client.android.options.UiAutomator2Options;
UiAutomator2Options options = new UiAutomator2Options();
// Plataforma e dispositivo
options.setPlatformName("Android");
options.setDeviceName("emulator-5554");
options.setPlatformVersion("13.0");
// App
options.setApp("/caminho/absoluto/para/meuapp.apk");
// Ou, se o app já estiver instalado:
options.setAppPackage("com.meuapp.android");
options.setAppActivity("com.meuapp.android.MainActivity");
options.setNoReset(true); // não reinstala o app a cada sessão
// Comportamento
options.setNewCommandTimeout(Duration.ofSeconds(60));
options.setAutoGrantPermissions(true); // aceita permissões automaticamenteimport io.appium.java_client.ios.options.XCUITestOptions;
XCUITestOptions options = new XCUITestOptions();
// Plataforma e dispositivo
options.setPlatformName("iOS");
options.setDeviceName("iPhone 14");
options.setPlatformVersion("16.0");
options.setUdid("00008101-XXXX"); // para dispositivo físico
// App
options.setApp("/caminho/para/meuapp.app");
// Ou, se o app já estiver instalado:
options.setBundleId("com.meuapp.ios");
// Comportamento
options.setAutoAcceptAlerts(true); // aceita alertas do sistema automaticamente
options.setWdaLaunchTimeout(Duration.ofSeconds(60));Quando o app já está instalado e você não quer reinstalá-lo a cada teste:
options.setAppPackage("com.meuapp.android");
options.setAppActivity("com.meuapp.android.SplashActivity");
options.setNoReset(true);options.setBundleId("com.meuapp.ios");
options.setNoReset(true);# Ative o Modo Desenvolvedor e Depuração USB no dispositivo
adb devices
# Copie o serial do dispositivo (ex: R58M11XXXXX)options.setDeviceName("R58M11XXXXX");
options.setUdid("R58M11XXXXX");# Descobrir o UDID
idevice_id -l
# Ou via Xcode: Window > Devices and Simulatorsoptions.setUdid("00008101-000XXXXXXXXXX");Para testar o browser do dispositivo:
UiAutomator2Options options = new UiAutomator2Options();
options.setPlatformName("Android");
options.setDeviceName("emulator-5554");
options.setBrowserName("Chrome"); // ou "Safari" no iOS
AndroidDriver driver = new AndroidDriver(new URL("http://localhost:4723"), options);
driver.get("https://meusite.com");- Use
setNoReset(true)para testes que não precisam de estado limpo — acelera a inicialização - Use
setAutoGrantPermissions(true)no Android para evitar que alertas de permissão quebrem os testes - Armazene as capabilities em um arquivo
config.propertiespara facilitar a troca entre ambientes - Prefira as classes tipadas (
UiAutomator2Options) em vez deDesiredCapabilitiesgenérico
Ir para: Gestos Avançados