被测网页
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="https://cn.bing.com">去bing搜索</a>
<a href="https://cn.bing.com">bing</a>
<a href="http://www.baidu.com">百度搜索</a>
</body>
</html>
通过连接文本定位
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("file:///F:/PythonWorkSpace/selenium_pro/id_test.html")
eles = driver.find_elements_by_partial_link_text("bing")
print(eles)
for item in eles:
url = item.get_attribute("href")
print(url)
print(driver.find_element_by_link_text("百度搜索").get_attribute("href"))
# driver.quit()
# 输出
# [<selenium.webdriver.remote.webelement.WebElement (session="5e8d0be6bcbe1fee6dfc0f8617da9e51", element="c02dbb9b-84dc-4975-a60c-f2855c2db237")>, <selenium.webdriver.remote.webelement.WebElement (session="5e8d0be6bcbe1fee6dfc0f8617da9e51", element="735d7c71-5387-4cf2-896e-0dbf6c7f4d53")>]
# https://cn.bing.com/
# https://cn.bing.com/
# http://www.baidu.com/
解析
find_elements_by_partial_link_text:通过连接部分文本来定位,这里通过bing文本,定位到了两个元素
item.get_attribute("href"):获取到了元素href属性
find_element_by_link_text("百度搜索"):通过完整的文本定位元素,这里定位到了百度搜索
partial_link_text:是通过局部文本来定位,因此它可能会定位到多个元素,如果局部文本就能唯一标识一个元素的话,那么就会定位这一个元素
link_text:是全部文本定位,通常定位的就是一个元素,不过也不是不可能有全部相同的文本
来源:https://blog.csdn.net/c_first/article/details/99061707