webentwicklung-frage-antwort-db.com.de

Aktivieren Sie das Kontrollkästchen mit Selenium mit Python

Wäre schön, wenn jemand weiß, wie man das Kontrollkästchen mit Selenium mit Python auswählt.

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()

Ich möchte das Kontrollkästchen für 15-Minuten-Stream-Flussdaten aktivieren: USGS (FIFE).

Ich habe versucht als id, name, link_text, konnte aber nicht erkennen, was verwendet werden sollte.

23
2964502

Verwenden Sie find_element_by_xpath mit dem Xpath-Ausdruck .//*[contains(text(), 'txt')], um ein Element zu finden, das txt als Text enthält.

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

UPDATE

Einige Inhalte werden nach dem Laden von Dokumenten geladen. Ich habe den Code so geändert, dass er 10 Mal versucht wurde (1 Sekunde dazwischen).

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
16
falsetru

Das Kontrollkästchen HTML lautet:

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

so können sie verwenden

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

So können Sie die Attribute von Elementen finden, indem Sie die Google Chrome Developer Tools verwenden:

Inspect element

Sie können es auch so versuchen:

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

Wenn Sie wissen möchten, ob es bereits geprüft ist oder nicht:

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

klicken:

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

so kannst du das auch probieren:

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