Як отримати атрибут елемента з селену?


86

Я працюю з селеном на 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")

Java

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.