Установите флажок, используя Selenium с Python

Было бы хорошо, если кто-то знает, как выбрать флажок, используя Selenium с 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() 

Я хочу выбрать флажок, соответствующий 15-минутному потоку данных потока: USGS (FIFE.

Я пробовал как id , name , link_text но не мог определить, что следует использовать?

Используйте find_element_by_xpath с выражением xpath .//*[contains(text(), 'txt')] чтобы найти элемент, содержащий txt виде текста.

 browser.find_element_by_xpath( ".//*[contains(text(), '15 Minute Stream Flow Data: USGS (FIFE)')]" ).click() 

ОБНОВИТЬ

Некоторое содержимое загружается после загрузки документа. Я модифицировал код, чтобы попробовать 10 раз (1 сон между ними).

 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 

Флажок HTML:

 <input id="C179003030-ORNL_DAAC-box" name="catalog_item_ids[]" type="checkbox" value="C179003030-ORNL_DAAC"> 

поэтому вы можете использовать

 browser.find_element_by_id("C179003030-ORNL_DAAC-box").click() 

Один из способов найти атрибуты элементов – использовать инструменты разработчика Google Chrome:

Осмотреть элемент

поэтому вы можете попробовать это:

 browser = webdriver.Firefox() url = 'http://reverb.echo.nasa.gov/reverb/' browser.get(url) browser.find_element_by_name("catalog_item_ids[]").click() 

Вы также можете попробовать:

 browser.find_element_by_xpath(".//*[@id='C179003030-ORNL_DAAC-box']") 

Если вы хотите узнать, уже ли это проверено или нет:

 browser.find_element_by_xpath(".//*[@id='C179003030-ORNL_DAAC-box']").get_attribute('checked') 

щелкнуть:

 browser.find_element_by_xpath(".//*[@id='C179003030-ORNL_DAAC-box']").click()