Come ottenere l'attributo dell'elemento dal selenio?


86

Sto lavorando con Selenium in Python. Vorrei ottenere il .val()di un <select>elemento e verificare che sia quello che mi aspetto.

Questo è il mio codice:

def test_chart_renders_from_url(self):
    url = 'http://localhost:8000/analyse/'
    self.browser.get(url)
    org = driver.find_element_by_id('org')
    # Find the value of org?

Come posso fare questo? I documenti Selenium sembrano avere molto sulla selezione degli elementi ma niente sugli attributi.


2
selenium-python-docs, 7.11 get_attribute(name) potrebbe fare il lavoro, anche se non credo di averlo effettivamente usato. Dagli Un colpo!
Abd Azrad

Risposte:


131

Probabilmente stai cercando get_attribute(). Un esempio è mostrato qui pure

def test_chart_renders_from_url(self):
    url = 'http://localhost:8000/analyse/'
    self.browser.get(url)
    org = driver.find_element_by_id('org')
    # Find the value of org?
    val = org.get_attribute("attribute name")

48

Pitone

element.get_attribute("attribute name")

Giava

element.getAttribute("attribute name")

Rubino

element.attribute("attribute name")

C #

element.GetAttribute("attribute name");

7

Poiché le applicazioni Web sviluppate di recente utilizzano JavaScript , jQuery , AngularJS , ReactJS ecc., Esiste la possibilità che per recuperare un attributo di un elemento tramite Selenium sia necessario indurre WebDriverWait a sincronizzare l' istanza WebDriver con il client Web in ritardo, ovvero il browser Web prima cercando di recuperare uno qualsiasi degli attributi.

Qualche esempio:

  • Pitone:

    • Per recuperare qualsiasi forma di attributo un visibile elemento (ad esempio, <h1>tag) è necessario utilizzare le expected_conditions come visibility_of_element_located(locator)nel seguente modo:

      attribute_value = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.ID, "org"))).get_attribute("attribute_name")
      
    • Per recuperare qualsiasi forma di attributo di un interattivo elemento (ad esempio <input>tag) è necessario utilizzare le expected_conditions come element_to_be_clickable(locator)nel seguente modo:

      attribute_value = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "org"))).get_attribute("attribute_name")
      

Attributi HTML

Di seguito è riportato un elenco di alcuni attributi utilizzati spesso in HTML

Attributi HTML

Nota : un elenco completo di tutti gli attributi per ogni elemento HTML è elencato in: HTML Attribute Reference

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.