Last active
May 24, 2023 11:02
-
-
Save tyom/97ef5e0fcea89f047edf273b67c4b68e to your computer and use it in GitHub Desktop.
Support for testID on Android in Appium (WebDriver.io)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// In Android wdio config | |
config = { | |
before() { | |
global.$ = selector => { | |
const enhancedSelector = | |
typeof selector === 'string' && selector.startsWith('~') | |
? `//*[@resource-id="${selector.slice(1)}"]` | |
: selector | |
return driver.$(enhancedSelector) | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.