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();