J'ai un bouton
<input type="submit" class="button button_main" style="margin-left: 1.5rem;" value="something">
Je ne peux pas le trouver par nom ou identifiant et j'ai besoin de soumettre un formulaire.
J'ai essayé de faire ceci: Alternativement, WebDriver utilise la méthode pratique «submit» sur chaque élément. Si vous appelez cela sur un élément d'un formulaire, WebDriver parcourra le DOM jusqu'à ce qu'il trouve le formulaire englobant, puis appelle submit. Si l'élément n'est pas dans un formulaire, l'exception NoSuchElementException sera levée: Element.submit () http://Selenium-python.readthedocs.org/navigating.html
Mais cela ne trouve pas non plus le sélecteur de soumission.
des idées?
Il y a beaucoup d'options ici, pour n'en nommer que quelques-unes:
Si la classe seule est unique, vous pouvez utiliser
driver.find_element_by_css_selector(".button_main").click()
Si la combinaison classe + valeur est unique, vous pouvez utiliser:
driver.find_element_by_css_selector(".button_main[value='something']").click()
Vous pouvez également utiliser xpath:
driver.find_element_by_xpath("//input[@type='submit' and @value='something']").click()
Si aucun de ceux-ci ne fonctionne (c'est-à-dire qu'ils n'identifient pas le bouton de manière unique), examinez les éléments situés au-dessus du bouton (par exemple <form
) et indiquez le xpath au format
driver.find_element_by_xpath("//unique_parent//input[@type="submit" and @value='something']").click()
je recommande l'extension xpath chrome, avec laquelle vous pourrez obtenir le chemin en exécutant l'extension et en cliquant sur l'élément de votre choix en cliquant sur Maj. https://chrome.google.com/webstore/detail/xpath- helper/hgimnogjllphhhkhlmebbmlmljjjjpjl
Vous pouvez essayer de trouver l'élément avec une expression XPath ou un sélecteur CSS comme input [type = "button"], puis de cliquer simplement sur l'élément.