Wie bekomme ich ein Elementattribut von Selen?

86

Ich arbeite mit Selen in Python. Ich möchte das .val()von einem <select>Element erhalten und überprüfen, ob es das ist, was ich erwarte.

Das ist mein Code:

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?

Wie kann ich das machen? Die Selenium-Dokumente scheinen viel über die Auswahl von Elementen zu haben, aber nichts über Attribute.

Richard
quelle
2
selenium-python-docs, 7.11 get_attribute(name) könnte den Job machen, obwohl ich nicht glaube, dass ich ihn tatsächlich benutzt habe. Versuch es einmal!
Abd Azrad

Antworten:

132

Sie suchen wahrscheinlich get_attribute(). Ein Beispiel wird gezeigt , hier als auch

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")
Saifur
quelle
49

Python

element.get_attribute("attribute name")

Java

element.getAttribute("attribute name")

Rubin

element.attribute("attribute name")

C #

element.GetAttribute("attribute name");
Shubham Jain
quelle
7

Wie die jüngsten entwickelten Web - Anwendungen verwenden JavaScript , jQuery , AngularJS , ReactJS etc gibt es eine Möglichkeit , dass ein Attribut eines Elements durch abzurufen Selen Sie induzieren müssen WebDriverWait die synchronisieren WebDriver Instanz mit dem rückständigen Web - Client , dh der Web - Browser vor versuchen, eines der Attribute abzurufen.

Einige Beispiele:

  • Python:

    • Um ein Attribut aus einem sichtbaren Element (z. B. einem <h1>Tag) abzurufen , müssen Sie die erwarteten Bedingungen visibility_of_element_located(locator)wie folgt verwenden:

      attribute_value = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.ID, "org"))).get_attribute("attribute_name")
      
    • Um ein Attribut aus einem interaktiven Element (z. B. einem <input>Tag) abzurufen , müssen Sie die erwarteten Bedingungen element_to_be_clickable(locator)wie folgt verwenden:

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

HTML-Attribute

Unten finden Sie eine Liste einiger Attribute, die häufig in HTML verwendet werden

HTML-Attribute

Hinweis : Eine vollständige Liste aller Attribute für jedes HTML-Element finden Sie unter: HTML-Attributreferenz

DebanjanB
quelle