present installing example code selenium xpath selenium-ide

installing - variables selenium ide



Cómo usar XPath anterior-hermano correctamente (2)

No necesita subir de nivel y usar .. ya que todos los botones están en el mismo nivel:

//button[contains(.,''Arcade Reader'')]/preceding-sibling::button[@name=''settings'']

Estoy escribiendo pruebas para mi sitio usando Selenium IDE y estoy teniendo problemas para tener selenio, haga clic en un botón con anterior-hermano

<td> <div class="btn-group"> <button class="btn btn btn-danger block" title="Warning, Delete" name="delete" type="button"> <button class="btn btn btn-default block" title="View History" name="history" type="button"> <button class="btn btn btn-default block" title="View Settings" name="settings" type="button"> <button class="btn btn btn-default block" name="device" type="button"> <span class="glyphicon glyphicon-pencil"/> Arcade Reader </button> </div> </td>

Mi camino

xpath=//button[contains(.,''Arcade Reader'')]/../preceding-sibling::button[@name=''settings'']


también me gusta construir localizadores de arriba a abajo como:

//div[contains(@class,''btn-group'')][./button[contains(.,''Arcade Reader'')]]/button[@name=''settings'']

es bastante simple, ya que solo buscamos btn-group con el button[contains(.,''Arcade Reader'')] y obtenemos su button[@name=''settings'']

esa es solo otra opción para construir localizadores xPath)

¿Cuál es el beneficio de buscar el elemento contenedor: puede devolverlo por método (ejemplo en java) y simplemente construir construcciones de selenio como:

getGroupByName("Arcade Reader").find("button[name=''settings'']"); getGroupByName("Arcade Reader").find("button[name=''delete'']");

o incluso simplificar más

getGroupButton("Arcade Reader", "delete").click();