Как получить атрибут элемента из Selenium?


86

Я работаю с Selenium на Python. Я хотел бы получить .val()из <select>элемента и проверить , что это то , что я ожидал.

Это мой код:

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?

Как я могу это сделать? В документации Selenium, кажется, много о выборе элементов, но ничего об атрибутах.


2
selenium-python-docs, 7.11 get_attribute(name) может сработать, хотя я не думаю, что на самом деле использовал его. Дать ему шанс!
Абд Азрад

Ответы:


132

Вы, наверное, ищете get_attribute(). Здесь также показан пример

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

49

Python

element.get_attribute("attribute name")

Ява

element.getAttribute("attribute name")

Рубин

element.attribute("attribute name")

C #

element.GetAttribute("attribute name");

7

Поскольку недавно разработанные веб-приложения используют JavaScript , jQuery , AngularJS , ReactJS и т. Д., Существует вероятность того, что для получения атрибута элемента через Selenium вам нужно побудить WebDriverWait синхронизировать экземпляр WebDriver с отстающим веб-клиентом, то есть веб-браузером, прежде чем пытается получить любой из атрибутов.

Некоторые примеры:

  • Python:

    • Для того, чтобы получить какой - либо форме приписывать видимый элемент (например , <h1>тег) , вы должны использовать expected_conditions , как visibility_of_element_located(locator)выглядит следующим образом :

      attribute_value = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.ID, "org"))).get_attribute("attribute_name")
      
    • Для того, чтобы получить какой - либо форме атрибута в интерактивный элемент (например , <input>тег) , вы должны использовать expected_conditions , как element_to_be_clickable(locator)выглядит следующим образом :

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

Атрибуты HTML

Ниже приведен список некоторых атрибутов, часто используемых в HTML.

Атрибуты HTML

Примечание . Полный список всех атрибутов для каждого элемента HTML приведен в: Справочник по атрибутам HTML.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.