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,'总计金额') # 模糊匹配,只要超级链接的文本里包含定位数据,就可以定位成功
"""
打开首页
点击"您的购物车中有....."
"""
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定位是精确匹配,要求文本必须书写完整。