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

Я работаю с 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, похоже, имеют много возможностей для выбора элементов, но ничего об атрибутах.

Ответ 1

Вероятно, вы ищете 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")

Ответ 2

питон

element.get_attribute("attribute name")

Ява

element.getAttribute("attribute name")

Рубин

element.attribute("attribute name")

С#

element.GetAttribute("attribute name");

Ответ 3

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

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

HTML атрибуты

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

HTML Attributes

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