web-dev-qa-db-fra.com

Comment puis-je vérifier si une case est cochée dans Selenium Python Webdriver?

Je cherche une semaine comment vérifier si une case à cocher est cochée dans Selenium webdriver avec python, mais je ne trouve que des algoritms de Java. J'ai lu la documentation du webdriver et je n'ai pas de réponse à cela. Quelqu'un a une solution?

35
Júlio Griebeler

Je trouve un autre moyen qui fonctionne, mais utilise javascript à l'intérieur.

def is_checked(self, driver, item):
  checked = driver.execute_script(("return document.getElementById('%s').checked") % item)
  return checked
3
Júlio Griebeler

Il existe une propriété WebElement appelée is_selected(), et pour une case à cocher, cela indique si elle est cochée ou non. Par conséquent, vous pouvez vérifier si elle est cochée/décochée en faisant quelque chose comme ceci:

driver.find_element_by_name('<check_box_name>').is_selected()

ou

driver.find_element_by_id('<check_box_id>').is_selected()

Je me souviens avoir eu le même problème de ne pas pouvoir trouver de documentation. Il est plus facile de trouver une fois que vous connaissez le nom ( ici sont des documents, is_selected Est vers le bas), mais la façon dont j'ai essayé de trouver différentes options/propriétés pour Selenium objets consiste simplement à déposer dir(some_object) dans le code et à voir quelles options apparaissent (c'est ainsi que is_selected est apparu).

69
RocketDonkey

J'utilise driver.find_element_by_name("< check_box_name >").is_selected()

6
Andrew