LINK_TEXT

  • 超级链接:标记名称是a的页面元素,点击后跳转到其它网页
  • 文本型超级链接:是指a的开始标记与结束标记之间有文本内容的超级链接
<a href='flow.php'>查看购物车</a>
  • WebDriver提供LINK_TEXT定位专门用于识别文本型超级链接,find_element方法返回一个页面元素对象
# 语法
变量 = driver.find_element(By.LINK_TEXT,'链接完整文本')
# 示例
myview = driver.find_element(By.LINK_TEXT,'查看购物车')
"""    打开首页,点击查看购物车"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/index.php') # 打开前台首页
# 定位元素
a_shop =driver.find_element(By.LINK_TEXT,'查看购物车')
# 元素操作
a_shop.click()
sleep(3) # 等待3秒
driver.quit() # 关闭浏览器
"""
打开首页,查看购物车,等待3秒,点击 选购中心,等待3秒后,点击 高级搜索,等待3秒后,点击留言板
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/index.php') # 打开前台首页
# 定位元素
a_shop1 =driver.find_element(By.LINK_TEXT,'查看购物车')
a_shop2 =driver.find_element(By.LINK_TEXT,'选购中心')
a_shop3 =driver.find_element(By.LINK_TEXT,'高级搜索')
a_shop4 =driver.find_element(By.LINK_TEXT,'留言板')

# 元素操作
a_shop1.click()
sleep(3) # 等待3秒
a_shop2.click()
sleep(3) # 等待3秒
a_shop3.click()
sleep(3) # 等待3秒
a_shop4.click()
sleep(3) # 等待3秒
driver.quit() # 关闭浏览器

PARTIAL_LINK_TEXT

  • 应用场景:有些超级链接文本较长,或有些文本可能会在下一个版本发生变化
<a href="flow.php" title="查看购物车">您的购物车中有 0 件商品,总计金额 ¥0.00元。</a>
  • PARTIAL_LINK_TEXT定位 使用部分链接文本定位
# 语法
变量 = driver.find_element(By.PARTIAL_LINK_TEXT,'链接部分文本')
# 例如
mycart = driver.find_element(By.PARTIAL_LINK_TEXT,'总计金额')
# 模糊匹配,只要超级链接的文本里包含定位数据,就可以定位成功

Selenium06-链接文本定位_超级链接

"""
打开首页
点击"您的购物车中有....."
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/index.php') # 打开前台首页
# 定位元素
mycart = driver.find_element(By.PARTIAL_LINK_TEXT,'总计金额')
# 元素操作
mycart.click()
sleep(3) # 等待3秒
driver.quit() # 关闭浏览器
"""
启动Firefox,打开ECshop前台登录页,点击文本里包含密码问题的超级链接
等待3秒,关闭浏览器
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/user.php') # 前台登录页
# 定位元素
mycart = driver.find_element(By.PARTIAL_LINK_TEXT,'密码问题')
# 元素操作
mycart.click()
sleep(3) # 等待3秒
driver.quit() # 关闭浏览器

说明

(1)LINK_TEXT和PARTIAL_LINK_TEXT都针对标记名称是a的超级链接使用,非超级链接不能使用,而且要求超级链接必须有文本(两个<>之间有文本)
(2)如果超级链接既有文本,又有子元素,子元素不影响你使用文本定位。
(3)如果超级链接没有文本,不能使用这两种定位方法
(4)文本较长,或文本里包含一些随时可能变化的数据,或文本前后带有一些空格,建议使用模糊匹配的PARTIAL_LINK_TEXT定位。
(5)LINK_TEXT定位是精确匹配,要求文本必须书写完整。


作者:暄总-tester