如何从硒中获取元素的属性?


86

我正在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文档似乎有很多关于选择元素的内容,但是与属性无关。


2
selenium-python-docs,7.11 get_attribute(name)可能可以完成这项工作,尽管我认为我并未真正使用它。试一试!
阿卜杜勒·阿兹拉德

Answers:


131

您可能正在寻找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")

48

蟒蛇

element.get_attribute("attribute name")

爪哇

element.getAttribute("attribute name")

红宝石

element.attribute("attribute name")

C#

element.GetAttribute("attribute name");

7

由于最近开发的Web应用程序正在使用JavaScriptjQueryAngularJSReactJS等,因此有可能通过Selenium检索元素的属性,您必须诱使WebDriverWaitWebDriver实例与落后的Web客户端(即之前的Web浏览器)同步尝试检索任何属性。

一些例子:

  • 蟒蛇:

    • 检索任何属性形式的可视元素(例如<h1>标签),你需要使用expected_conditionsvisibility_of_element_located(locator)如下:

      attribute_value = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.ID, "org"))).get_attribute("attribute_name")
      
    • 为了获取任何实体形式的互动元素(例如<input>标签),你需要使用expected_conditionselement_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属性参考

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.