Como obter o atributo do elemento do Selenium?

86

Estou trabalhando com Selenium em Python. Gostaria de obter o resultado .val()de um <select>elemento e verificar se é o que espero.

Este é o meu código:

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?

Como posso fazer isso? Os documentos do Selenium parecem ter muito sobre a seleção de elementos, mas nada sobre atributos.

Richard
fonte
2
selenium-python-docs, 7.11 get_attribute(name) pode fazer o trabalho, embora eu não ache que realmente o usei. Dê uma chance!
Abd Azrad

Respostas:

131

Você provavelmente está procurando get_attribute(). Um exemplo é mostrado aqui também

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
fonte
48

Pitão

element.get_attribute("attribute name")

Java

element.getAttribute("attribute name")

Rubi

element.attribute("attribute name")

C #

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

Como os aplicativos da Web desenvolvidos recentemente estão usando JavaScript , jQuery , AngularJS , ReactJS etc., existe a possibilidade de recuperar um atributo de um elemento por meio do Selenium, que você deve induzir o WebDriverWait a sincronizar a instância do WebDriver com o cliente da Web em atraso, ou seja, o navegador da Web antes tentando recuperar qualquer um dos atributos.

Alguns exemplos:

  • Pitão:

    • Para recuperar qualquer forma atributo uma visível elemento (por exemplo <h1>tag), você precisa usar os expected_conditions como visibility_of_element_located(locator)as seguintes:

      attribute_value = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.ID, "org"))).get_attribute("attribute_name")
      
    • Para recuperar qualquer formulário de atributo de um interativo elemento (por exemplo <input>tag), você precisa usar os expected_conditions como element_to_be_clickable(locator)as seguintes:

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

Atributos HTML

Abaixo está uma lista de alguns atributos frequentemente usados ​​em HTML

Atributos HTML

Observação : uma lista completa de todos os atributos de cada elemento HTML está listada em: Referência de atributo HTML

DebanjanB
fonte