J'ai 2 boutons Annuler et Suivant sur la même page mais il n'y a qu'un seul identifiant (voir le code ci-dessous). Je voulais appuyer sur Suivant, mais à chaque fois, le bouton Annuler est identifié, mais pas le bouton Suivant. Comment résoudre ce problème?
<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>
Dans Selenium IDE, vous pouvez faire:
Command | clickAndWait Target | // input [@ value = 'Next' et @ title = 'next']
Cela devrait bien fonctionner.
Utilisez xpath selector (voici rapide tutorial ) au lieu 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()
Ou, si vous utilisez Selenium "Vanilla", utilisez simplement le même sélecteur xpath au lieu du bouton id
NEXT_BUTTON_XPATH = '//input[@type="submit" and @title="next"]'
Selenium.click(NEXT_BUTTON_XPATH)
utiliser les attributs text et value au lieu de l'id
driver.findElementByXpath("//input[@value='cancel'][@title='cancel']").click();
de même pour Next.
Pour le bouton Suivant, vous pouvez utiliser xpath ou cssSelector comme ci-dessous:
xpath pour le bouton Next: // input [@ value = 'Next']
cssPath for Next button: entrée [valeur = Suivant]
Vous n'avez pas besoin d'utiliser uniquement l'identifiant en tant que localisateur d'éléments. Vous pouvez utiliser plusieurs méthodes pour rechercher un élément. Lisez cet article et choisissez le meilleur pour vous.
Vous pouvez utiliser xpath pour identifier cet élément.
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