find_element_by_tag_name和find_elements_by_tag_name有什么区别?

时间:2012-12-30 11:35:20

标签: selenium selenium-webdriver

具有单数名称的函数与具有复数名称的函数有什么区别?

find_element_by_name
find_elements_by_name

find_element_by_tag_name
find_elements_by_tag_name

2 个答案:

答案 0 :(得分:4)

我并不熟悉python和selenium,但大多数DOM函数都以相同的方式运行。

find_element_by_name应返回name属性与名称匹配的元素(找到的第一个实例)

<input name="username" type="text" value="Enter Username" />

find_elements_by_name将返回匹配元素的集合/数组

<input name="continue" type="submit" value="Login" />
<input name="continue" type="button" value="Clear" />

find_element_by_tag_name将仅返回具有匹配标记名称的元素的第一个实例。

find_element_by_tag_name("a") // return the first anchor

find_elements_by_tag_name将再次返回匹配标记名称的集合/数组。

如果可以链接这些命令,或者在存储的元素上调用它们,get_element(s)_*函数的结果将相对于它所调用的节点。

<html>
  <body>
    <div>
       <a href="#1">Example 1</a>
       <a href="#2">Example 2</a>
    </div>
    <span>
       <a href="#3">Example 3</a>
       <a href="#4">Example 4</a>
    </span>
  </body>
</html>

实施例

find_element_by_tag_name("a") == Example 1

find_element_by_tag_name("span").find_element_by_tag_name("a") == Example 3

迭代收集/数组

links = browser.find_elements_by_tag_name("a")

for link in links
 # link should be a Selenium WebElement?

如果有疑问,你可以直接转储整个结果以查看其中的内容。

Debugging python object/properties

答案 1 :(得分:0)

find_element_by_tag_name(tag_name)

具有唯一名称的函数是find_element_by_tag_name(tag_name),它通过标记名称查找元素并返回该元素。

  • 详细信息:

    find_element_by_tag_name(tag_name)        
    
    Args :  
        name - name of html tag (eg: h1, a, span)
    
    Returns :   
        WebElement - the element if it was found
    
    Raises :    
        NoSuchElementException - if the element wasn’t found
    
  • 用法:

    element = driver.find_element_by_tag_name("h1")
    

find_elements_by_tag_name(标签名)

具有复数名称的函数为find_elements_by_tag_name(tag_name),该函数按标签名称查找元素并返回列表。

  • 详细信息:

    find_elements_by_tag_name(tag_name): 
    
    Args :  
        name - name of html tag (eg: h1, a, span)
    
    Returns :
        list of WebElements - a list with elements if any was found. An empty list if not
    
  • 用法:

    elements = driver.find_elements_by_tag_name("h1")