Este documento lista todos los identificadores de prueba (testID) disponibles en la aplicación de ejemplo para automatización con Appium y otras herramientas.
config-text-input: Campo de texto para ingresar el JSON de configuraciónbutton-start-sdk: Botón para iniciar la aplicación React Native
input-customer-session: Campo de texto para Customer Sessioninput-checkout-session: Campo de texto para Checkout Session (requerido para pagos)input-payment-method-type: Campo de texto para tipo de método de pago (requerido para Payment Lite)input-vaulted-token: Campo de texto para Vaulted Token (opcional)
button-start-payment: Botón "Start Payment (Full Flow)"button-start-payment-lite: Botón "Start Payment Lite"button-seamless-payment: Botón "Seamless Payment"
button-enrollment: Botón "Enrollment Payment"
button-continue-payment: Botón para continuar el pago con OTTbutton-clear-ott: Botón para limpiar el OTT
yuno-payment-methods-view: Vista nativa que contiene la lista de métodos de pago de Yuno
button-pay: Botón "Pay" (aparece después de seleccionar un método de pago)button-back: Botón "← Back" para volver a la pantalla principal
En Android, los testID se mapean automáticamente a contentDescription y se pueden buscar usando:
// WebdriverIO
const element = await $('android=new UiSelector().description("button-start-payment")');
await element.click();
// O usando accesibilidad
const element = await $('~button-start-payment');
await element.click();En iOS, los testID se mapean automáticamente a accessibilityIdentifier y se pueden buscar usando:
// WebdriverIO
const element = await $('~button-start-payment');
await element.click();
// O usando predicate string
const element = await $('-ios predicate string:name == "button-start-payment"');
await element.click();// 1. Pantalla inicial - Ingresar configuración
await $('~config-text-input').setValue(JSON.stringify(config));
await $('~button-start-sdk').click();
// 2. Ingresar checkout session
await $('~input-checkout-session').setValue('your-checkout-session-id');
// 3. Iniciar Payment Full Flow
await $('~button-start-payment').click();
// 4. Esperar a que aparezca la lista de métodos de pago
await $('~yuno-payment-methods-view').waitForDisplayed({ timeout: 5000 });
// 5. Seleccionar método de pago (elementos nativos de Yuno SDK)
// Los elementos internos de la lista se manejan por el SDK nativo de Yuno
// 6. Presionar el botón Pay
await $('~button-pay').waitForDisplayed({ timeout: 5000 });
await $('~button-pay').click();-
React Native: Los testIDs en componentes React Native se mapean automáticamente a las propiedades nativas correspondientes:
- iOS:
accessibilityIdentifier - Android:
contentDescription
- iOS:
-
Compose en Android: En el SDK nativo de Yuno (Compose), los elementos usan
modifier.semantics { testTagsAsResourceId = true }.testTag(), lo que permite usarresource-idpara acceder a ellos. -
Elementos Nativos del SDK Yuno: La lista de métodos de pago (
yuno-payment-methods-view) contiene elementos nativos del SDK de Yuno. Para interactuar con elementos específicos dentro de la lista, consulta la documentación del SDK nativo de Yuno o usa coordenadas/gestos. -
Timing: Algunos elementos pueden tardar en aparecer debido a llamadas de red. Usa
waitForDisplayed()o esperas explícitas según sea necesario.
Este documento está actualizado con la versión 1.0.49 del SDK de React Native.