具有单数名称的函数与具有复数名称的函数有什么区别?
find_element_by_name
find_elements_by_name
和
find_element_by_tag_name
find_elements_by_tag_name
答案 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?
如果有疑问,你可以直接转储整个结果以查看其中的内容。
答案 1 :(得分:0)
具有唯一名称的函数是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(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")