selenium-rc - locators selenium
¿Cómo presionar/hacer clic en el botón usando Selenium si el botón no tiene Id? (7)
Tengo 2 botones Cancelar y Siguiente en la misma página, pero solo tiene una identificación (ver el código a continuación). Quería presionar Siguiente, pero cada vez que identifica el botón Cancelar, no solo el botón Siguiente. Cómo resolver este problema?
<td align="center">
<input type="button" id="cancelButton" value="Cancel" title="cancel" class="Submit_Button" style="background-color: rgb(0, 0, 160);">
<input type="submit" value="Next" title="next" class="Submit_Button">
</td>
En Selenium IDE puedes hacer:
Command | clickAndWait Target | //input[@value=''Next'' and @title=''next'']
Debería funcionar bien.
No necesita usar solo identificador como localizadores de elementos. Puedes usar algunas formas de encontrar un elemento. Lea este artículo y elija el mejor para usted.
Para el botón Siguiente puede usar xpath o cssSelector de la siguiente manera:
xpath para el botón Siguiente: // entrada [@ value = ''Siguiente'']
cssPath para el botón Siguiente: entrada [valor = Siguiente]
Puede usar xpath para identificar ese elemento.
Use el selector xpath (aquí está el tutorial rápido) en lugar de id:
#python:
from selenium.webdriver import Firefox
YOUR_PAGE_URL = ''http://mypage.com/''
NEXT_BUTTON_XPATH = ''//input[@type="submit" and @title="next"]''
browser = Firefox()
browser.get(YOUR_PAGE_URL)
button = browser.find_element_by_xpath(NEXT_BUTTON_XPATH)
button.click()
O bien, si usa Selenium "vainilla", simplemente use el mismo selector xpath en lugar de la ID del botón:
NEXT_BUTTON_XPATH = ''//input[@type="submit" and @title="next"]''
selenium.click(NEXT_BUTTON_XPATH)
utiliza los atributos de texto y valor en lugar de la ID
driver.findElementByXpath("//input[@value=''cancel''][@title=''cancel'']").click();
similarmente para Siguiente.
You can achieve this by using cssSelector
// Use of List web elements:
String cssSelectorOfLoginButton="input[type=''button''][id=''login'']";
//****Add cssSelector of your 1st webelement
//List<WebElement> button
=driver.findElements(By.cssSelector(cssSelectorOfLoginButton));
button.get(0).click();
I hope this work for you