Установите флажок, используя 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
, но не мог определить, что следует использовать?
Ответы
Ответ 1
Используйте find_element_by_xpath
с помощью выражения xpath .//*[contains(text(), 'txt')]
, чтобы найти элемент, содержащий txt
как текст.
browser.find_element_by_xpath(
".//*[contains(text(), '15 Minute Stream Flow Data: USGS (FIFE)')]"
).click()
UPDATE
Некоторое содержимое загружается после загрузки документа. Я модифицировал код, чтобы попробовать 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
Ответ 2
Флажок 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:
![Inspect element]()
Ответ 3
Вы также можете попробовать:
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()
Ответ 4
чтобы вы могли попробовать это:
browser = webdriver.Firefox()
url = 'http://reverb.echo.nasa.gov/reverb/'
browser.get(url)
browser.find_element_by_name("catalog_item_ids[]").click()