AppiumLibrary para Robot Framework – Obteniendo el Texto de un Botón
Estoy experimentando con AppiumLibrary en RobotFramework y tengo una prueba simple para un requisito que dice: “el botón Set debería existir en esta página”. Estoy probando esto recuperando el botón que tiene un ID especificado y luego verificando si ese botón tiene el texto correcto.
Puedo recuperar el botón que quiero a través del ID, sin embargo, tengo problemas para obtener el texto real en el botón.
Aquí es cómo se define el botón en la página web:
<button id="button-set" class="button ng-binding" style="width: 20%">Set</button>
¡Muy simple! Usando Appium Desktop en modo de aplicación web/híbrida y haciendo clic en el botón Set, dice que el atributo “texto” muestra “Set”. Sin embargo, he aprendido que el uso de los atributos en Appium Desktop no son válidos al buscar elementos en una página web, por ejemplo, buscar por el atributo Clase en Appium Desktop (android.widget.Button) no es correcto porque en la página web la clase para el botón es en su lugar: “botón ng-binding”.
He intentado lo siguiente:
# esto recupera el botón bien, por ID
Página debería contener elemento xpath=//button[@id="button-set"]
# todos estos devuelven 'None'
${nombre}= Obtener atributo del elemento xpath=//button[@id="button-set"] nombre
${texto}= Obtener atributo del elemento xpath=//button[@id="button-Set"] texto
Entonces, no estoy seguro qué atributo usar para recuperar el texto al recuperar el elemento por ID. En su lugar, he intentado recuperar el elemento de esta manera:
# esto también pasa bien - siento que también debería asegurarme de que este botón tenga el ID correcto, para que el mapeo
# entre procedimientos de prueba y casos sea más fácil, pero si esto es lo mejor que se puede obtener, entonces
# esto puede discutirse
Página debería contener elemento xpath=//button[contains(text(),'set')]
# sin embargo, lo siguiente no tiene sentido, esto devuelve "botón" en lugar de "botón-set", lo que me hace pensar que la consulta XPath no es correcta
${id2}= Obtener atributo del elemento xpath=//button[contains(text(),'set')] id
# nuevamente, ambos devuelven 'None'
${nombre2}= Obtener atributo del elemento xpath=//button[contains(text(),'set')] nombre
${texto2}= Obtener atributo del elemento xpath=//button[contains(text(),'set')] texto
También he intentado lo siguiente:
${elemento}= Obtener elemento web xpath=//button[@id="button-set"]
# esto devuelve "botón-set" como esperarías:
${id3}= Obtener atributo del elemento ${elemento} id
# esto nuevamente devuelve 'None'
${nombre3}= Obtener atributo del elemento ${elemento} nombre
${texto3}= Obtener atributo del elemento ${elemento} texto
Siento que debería ser algo muy simple de hacer, y puedo ver en otras preguntas que usaría el atributo Nombre cuando se usa el Appium puro. Sin embargo, utilizando la biblioteca Robot Framework en su lugar, esto no parece ser el enfoque correcto. Debo estar haciendo algo bastante simple aquí, ¿alguien puede señalarlo?
¡Gracias!
davy.ai
Solución para recuperar el texto en un elemento de botón en RobotFramework usando AppiumLibrary
Si tiene problemas para recuperar el texto en un elemento de botón utilizando la palabra clave
GET ELEMENT ATTRIBUTE
, puede intentar usar la palabra claveGET TEXT
en su lugar. Aquí hay un ejemplo:Alternativamente, puede intentar usar la palabra clave
GET ATTRIBUTE
con el atributo “value” en lugar de “text”. Aquí hay un ejemplo:¡Espero que esto ayude!