Serait bien si quelqu'un sait comment cocher la case en utilisant Selenium avec Python.
from Selenium import webdriver
from Selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
url = 'any url'
browser.get(url)
browser.find_element_by_id("15 Minute Stream Flow Data: USGS (FIFE)").click()
Je souhaite sélectionner la case à cocher correspondant à 15 minutes de flux de données: USGS (FIFE.
J'ai essayé en tant que id
, name
, link_text
mais je n'ai pas pu détecter ce qui devait être utilisé?
Utilisez find_element_by_xpath
avec l'expression xpath .//*[contains(text(), 'txt')]
pour rechercher un élément contenant txt
en tant que texte.
browser.find_element_by_xpath(
".//*[contains(text(), '15 Minute Stream Flow Data: USGS (FIFE)')]"
).click()
METTRE À JOUR
Certains contenus sont chargés après le chargement du document. J'ai modifié le code pour essayer 10 fois (1 dors entre les deux).
import time
from Selenium import webdriver
from Selenium.webdriver.common.keys import Keys
from Selenium.common.exceptions import NoSuchElementException
browser = webdriver.Firefox()
url = 'http://reverb.echo.nasa.gov/reverb/'
browser.get(url)
for i in range(10):
try:
browser.find_element_by_xpath(
".//*[contains(text(), '15 Minute Stream Flow Data: USGS (FIFE)')]"
).click()
break
except NoSuchElementException as e:
print('retry in 1s.')
time.sleep(1)
else:
raise e
La case à cocher HTML est:
<input id="C179003030-ORNL_DAAC-box" name="catalog_item_ids[]" type="checkbox" value="C179003030-ORNL_DAAC">
afin que vous puissiez utiliser
browser.find_element_by_id("C179003030-ORNL_DAAC-box").click()
Vous pouvez notamment rechercher les attributs des éléments en utilisant les outils de développement de Google Chrome:
Vous pouvez aussi essayer de cette façon:
browser.find_element_by_xpath(".//*[@id='C179003030-ORNL_DAAC-box']")
Si vous voulez savoir si c'est déjà vérifié ou pas:
browser.find_element_by_xpath(".//*[@id='C179003030-ORNL_DAAC-box']").get_attribute('checked')
cliquer:
browser.find_element_by_xpath(".//*[@id='C179003030-ORNL_DAAC-box']").click()
afin que vous puissiez essayer aussi:
browser = webdriver.Firefox()
url = 'http://reverb.echo.nasa.gov/reverb/'
browser.get(url)
browser.find_element_by_name("catalog_item_ids[]").click()