Skip to content

Instantly share code, notes, and snippets.

@tyom
Last active May 24, 2023 11:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tyom/97ef5e0fcea89f047edf273b67c4b68e to your computer and use it in GitHub Desktop.
Save tyom/97ef5e0fcea89f047edf273b67c4b68e to your computer and use it in GitHub Desktop.
Support for testID on Android in Appium (WebDriver.io)
// In Android wdio config
config = {
before() {
global.$ = selector => {
const enhancedSelector =
typeof selector === 'string' && selector.startsWith('~')
? `//*[@resource-id="${selector.slice(1)}"]`
: selector
return driver.$(enhancedSelector)
}
}
}
@JesusCastroFernandez
Copy link

Aquí tienes una versión mejorada del código anterior.

config = {
before() {
global.$ = selector => {
if (typeof selector === 'string' && selector.startsWith('~')) {
const enhancedSelector = //*[@content-desc="${selector.slice(1)}"];
return driver.$(enhancedSelector);
} else {
return driver.$(selector);
}
};
}
}

En esta mejora, se ha añadido una estructura de control if-else para mejorar la legibilidad y el manejo de casos. Ahora, si el selector cumple la condición de ser una cadena que comienza con el carácter "~", se realiza la manipulación del selector y se devuelve el resultado utilizando el método $ del objeto driver. Si el selector no cumple esa condición, simplemente se pasa el selector original al método $ del objeto driver.

Esta mejora hace el código más claro y fácil de entender, al mismo tiempo que asegura un comportamiento adecuado en ambos casos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment