有没有办法在Python Selenium中按属性查找元素?

时间:2015-02-10 07:56:28

标签: python selenium

我有一个像这样的html片段:

<input type="text" node-type="searchInput" autocomplete="off" value="" class="W_input" name="14235541231062">

html中这个元素的唯一唯一标识是属性node-type="searchInput",所以我想通过使用Python的selenium的某些方法来找到它:

search_elem = driver.find_element_by_xxx("node-type","searchInput") # maybe?

我检查了selenium(python)document for locating elems,但没有得到如何通过node-type attr找到这个元素的线索。有没有明确的方法在python selenium中找到这个元素?

3 个答案:

答案 0 :(得分:20)

您可以通过xpath 获取并检查node-type属性值:

driver.find_element_by_xpath('//input[@node-type="searchInput"]')

答案 1 :(得分:2)

即使这个问题很老,但我相信它仍然非常相关。 您也许可以使用简单的CSS选择器,并且语法是类似于jQuery或本机浏览器支持的标准javascript。

driver.find_element_by_css_selector('span.className[attrName="attrValue"]')

示例: driver.find_element_by_css_selector('span.blueColor[shape="circle"]')

答案 2 :(得分:0)

这是您可以使用的方法:

save_items = []

for item in driver.find_elements_by_tag_name("input"):
    # Get class
    item_class = item.get_attribute("class")

    # Get name:
    item_name = item.get_attribute("name")

    # And so on...


    # Check for a match
    if item_class == "W_input" and item_name == "14235541231062":
        # Do your operation (or add to a list)
        save_items.append(item)