首页 > 其他分享 >Selenium06-链接文本定位

Selenium06-链接文本定位

时间:2022-12-08 21:14:40浏览次数:50  
标签:Selenium06 TEXT driver find LINK import 文本 链接

  • 超级链接:标记名称是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() # 关闭浏览器
    
  • 应用场景:有些超级链接文本较长,或有些文本可能会在下一个版本发生变化

    <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定位是精确匹配,要求文本必须书写完整。

标签:Selenium06,TEXT,driver,find,LINK,import,文本,链接
From: https://www.cnblogs.com/sean-test/p/16967288.html

相关文章

  • vba-光标移开文本框触发的事件
    PrivateSubTextBox1_AfterUpdate()TextBox1.Text=Format(CDate(TextBox1.Text),"yyyy/m/d")EndSub PrivateSubTextBox1_AfterUpdate()OnErrorGoTo......
  • 文本查看及处理工具
    文本查看及处理工具wc、cut、sort、uniq、diff、patch;wc命令:其功能是用于统计文件的字节数、单词数、行数等信息,并将统计结果输出到终端界面。使用方式:wc[选项]...[文......
  • 3.4.Linux-文本过滤与处理-diff3指令:比较3个文件的不同(了解)
    1.diff3 diff3命令用于比较3个文件,将3个文件的不同的地方显示到标准输出。2.语法diff3(选项)(参数)3.选项-a:把所有的文件都当做文本文件按照行为单位进行比较,即给......
  • R语言对推特twitter数据进行文本情感分析|附代码数据
    原文链接:http://tecdat.cn/?p=4012最近我们被客户要求撰写关于文本情感分析的研究报告,包括一些图形和统计输出。我们以R语言抓取的推特数据为例,对数据进行文本挖掘,进一步......
  • 3、electron读取文本文本文件内容展示到页面
    1、项目根目录下创建一个文件文件test.txt2、index.html页面源码:<!DOCTYPEhtml><htmllang="zh-cn"><head><metacharset="utf-8"><metaname="renderer"co......
  • 友情链接对SEO的作用
    友情链接对SEO有什么影响?米贸搜今天就和你讨论一下,希望能帮到你:第一,提高网站的PR值。友情链接质量好,对PR值的提升有很大的帮助,是有传播的。这就是为什么如果你的PR比对方低......
  • win32API 读写ANSI\UNICODE\UNICODE BIG-ENDIAN\UTF-8格式文本
    #include<windows.h>#include<tchar.h>#include<cassert>////读写文件的简单API函数封装//CFileBaseHelper//|......
  • C++ 读写文本文件
    1.逐行读文本,文本以空格分隔points.txt文件内容如下:indexx1y1x2y202473722646141224158246400238926440750934664349028943337949618......
  • Java通过JNA方式调用DLL(动态链接库)
    Java通过JNA方式调用DLL(动态链接库)1.JNA简单介绍先说JNI(JavaNativeInterface)吧,有过不同语言间通信经历的一般都知道,它允许Java代码和其他语言(尤其C/C++)写的代码进......
  • C++_动态链接库和搜索共享库
    标准1998 C++982011 C++11ISO/IEC14882:2011 2014 C++142017 C++172020 ISOC++委员会正式发布了C++20标准,命名为ISO/IEC14882:2020 实现01.命令查看自己......