如何从Selenium获取元素的属性?

时间:2015-05-19 11:47:14

标签: python selenium selenium-webdriver webdriver getattribute

我在Python中使用Selenium。我想获得.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文档似乎有很多关于选择元素但没有关于属性的内容。

3 个答案:

答案 0 :(得分:81)

您可能正在寻找get_attribute()。示例显示here以及

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

答案 1 :(得分:25)

<强>的Python

element.get_attribute("attribute name")

<强>爪哇

element.getAttribute("attribute name")

<强>红宝石

element.attribute("attribute name")

<强> C#

element.GetAttribute("attribute name");

答案 2 :(得分:3)

由于最近开发的 Web应用程序正在使用JavaScriptjQueryAngularJSReactJS等,因此有可能检索到通过 Selenium 元素的属性,您必须诱使WebDriverWait WebDriver 实例与滞后的 Web Client (即 > Web浏览器,然后尝试检索任何属性。

一些例子:

  • Python:

    • 要从 visible 元素(例如<h1>标记)中检索任何属性,您需要使用expected_conditions作为visibility_of_element_located(locator),如下所示:< / p>

      attribute_value = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.ID, "org"))).get_attribute("attribute_name")
      
    • 要从 interactive 元素(例如<input>标记)中检索任何属性,您需要将expected_conditions用作element_to_be_clickable(locator),如下所示:< / p>

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

HTML属性

下面是HTML中经常使用的一些属性的列表

HTML Attributes

注意:每个HTML元素的所有属性的完整列表在以下列表中:HTML Attribute Reference