selenium自动化测试:xpath八种定位方式!

news2024/9/27 17:29:56

selenium自动化测试:5.xpath八种定位方式

01、前言

如果可以的话,请先关注(专栏和账号),然后点赞和收藏,最后学习和进步。你的支持是我继续写下去的最大动力,个人定当倾囊而送,不负众望。谢谢!!!

1.前提

基于win10专业版64位系统+64位jdk1.8+64位python3.6.5+社区版pycharm2018.1.3+unittest+selenium3.141.0。

2.xpath八种定位方式

xpath:即xml路径语言,通常用来在html或xml中查找元素。

掌握了xpath八种定位方式能干啥?既不能上天也不能遁地,但能解决你在selenium自动化测试定位元素时百分之99.999999999......的元素都可以定位得到。

下来看下xpath的基本语法:

# /:从根节点选取
# //:从非根节点选取
# *:任意节点选取
# @:根据属性
# text():根据链接文本
# and:关联属性或链接文本
# []:可以放置下标、属性和链接文本
# .:选取当前节点
# ..:选取当前节点的父节点
# contains:包含,用于模糊匹配

说明:xpath涉及到的东西还有很多,这里仅教会大家做自动化测试时,会灵活书写xpath定位语句即可。

1)全路径:不推荐

from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("/html/body/div/div/div[2]/a[3]").click()#全路径定位,不推荐
sleep(1)
dr.close()

2)单属性

from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("//a[@name='tj_trhao123']").click()#单属性定位
sleep(1)
dr.close()

3)多属性

from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("//a[@name='tj_trhao123' and @class='mnav']").click()#多属性定位
sleep(1)
dr.close()

4)父属性

from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("//div[@id='u1']/a[@name='tj_trhao123']").click()#父属性定位
sleep(1)
dr.close()

5)下标

from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("//a[@class='mnav'][2]").click()#下标定位
sleep(1)
dr.close()

6).和..

from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("//a[@class='mnav'][2]/.").click()#.和..定位
sleep(1)
dr.close()

7)链接文本

from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
dr.find_element_by_xpath("//a[text()='hao123']").click()#链接文本定位
sleep(1)
dr.close()

8)模糊匹配

from time import sleep
from selenium import webdriver
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com/')
# dr.find_element_by_xpath("//a[contains(@name,'hao')]").click()#模糊匹配定位
dr.find_element_by_xpath("//a[contains(text(),'hao')]").click()#模糊匹配定位
sleep(1)
dr.close()

注:xpath八种定位方式,除了第一种全路径定位方式不推荐外,其它几种定位方式,你觉得哪个方便就用哪个好了。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1284421.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

市场缺口投资者应该怎么做? 昂首资本一招就能盈利

当在市场交易分析中,投资者发现市场缺口或者价格缺口的时候, 昂首资本问各位投资者应该怎么才能抓住机会盈利一波。 其实在技术分析中的这个术语指的是:前一根棒线的收盘价和下一根棒线的开盘价之间有差距的情况。例如,当做市商将…

LeetCode力扣每日一题(Java):9、回文数

一、题目 二、解题思路 1、我的思路 当x<0时&#xff0c;x一定不是回文数&#xff0c;直接返回false 当x>0且x<10时&#xff0c;x一定是回文数&#xff0c;直接返回true x>10时&#xff0c;先将x转为字符串。将数字转成字符串方法挺多的&#xff0c;以下是&…

​LeetCode解法汇总1038. 从二叉搜索树到更大和树

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 给定一个二…

分享66个菜单导航JS特效,总有一款适合您

分享66个菜单导航JS特效&#xff0c;总有一款适合您 66个菜单导航JS特效下载链接&#xff1a;https://pan.baidu.com/s/1dpGGbptx6hEKcBnTMNLIdA?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;…

自定义starter案例——统计独立IP访问次数

自定义starter案例——统计独立IP访问次数 文章目录 自定义starter案例——统计独立IP访问次数ip计数业务功能开发定时任务报表开发使用属性配置功能设置功能参数配置调整 自定义拦截器开启yml提示功能 ip计数业务功能开发 public class IpCountService {private Map<String…

电气间隙和爬电距离的算法

电气间隙和爬电距离 一、定义 1、电气间隙&#xff1a;不同电位的两个导电部件间最短的空间直线距离。 2、爬电距离&#xff1a;不同电位的两个导电部件之间沿绝缘材料表面的最短距离。 3、隔离距离&#xff08;机械式开关电器一个极的&#xff09;&#xff1a;满足对隔离器…

sqlmap400报错问题解决

python sqlmap.py -r sql.txt --batch --techniqueB --tamperspace2comment --risk 3 --force-ssl–batch 选项全部默认 不用再手动输入 –techniqueB 使用布尔盲注&#xff0c;该参数是指出要求使用的注入方式 –tamperspace2comment使用特殊脚本&#xff0c;space2comment是把…

数据结构学习笔记——广义表

目录 一、广义表的定义二、广义表的表头和表尾三、广义表的深度和长度四、广义表与二叉树&#xff08;一&#xff09;广义表表示二叉树&#xff08;二&#xff09;广义表表示二叉树的代码实现 一、广义表的定义 广义表是线性表的进一步推广&#xff0c;是由n&#xff08;n≥0&…

你好!斐波那契查找【JAVA】

1.有幸遇见 斐波那契查找算法&#xff0c;也称黄金分割查找算法&#xff0c;是一种基于斐波那契数列的查找算法。与二分查找类似&#xff0c;斐波那契查找也是一种有序查找算法&#xff0c;但它的查找点不是中间位置&#xff0c;而是根据斐波那契数列来确定&#xff0c;因此又称…

关于开展人工智能专业人员“计算机视觉处理设计开发工程师”专项培训的通知

“人工智能技术与咨询”发布 工业与信息化部电子工业标准化研究院于2022年7月1日发布《人工智能从业技术人员要求》&#xff0c;现针对已发布标准于1月3日至7日在北京举办《自然语言与语音处理设计开发工程师》中级人才培养&#xff0c;下边是具体文件通知请大家查阅。行业人才…

MYSQL连接合集总结-上

再做了一次这部分的leetcode的题目&#xff0c;如下9题&#xff0c;这里先分析前三题。 1.使用唯一标识码替换员工ID 两个表&#xff0c;employees表&#xff08;id和名字一一对应&#xff09;&#xff0c;employeeUNI表&#xff08;id和唯一标识一一对应&#xff09;&#xf…

牛客剑指offer刷题模拟篇

文章目录 顺时针打印矩阵题目思路代码实现 扑克牌顺子题目思路代码实现 把字符串转换成整数题目思路代码实现 表示数值的字符串题目思路代码实现 顺时针打印矩阵 题目 描述 输入一个矩阵&#xff0c;按照从外向里以顺时针的顺序依次打印出每一个数字&#xff0c;例如&#xf…

网站防盗链是什么

随着互联网的快速发展&#xff0c;网站的安全问题越来越受到关注。其中&#xff0c;防盗链是许多网站面临的一个重要问题。本文将介绍网站防盗链的基本概念、原因以及如何采取措施进行保护。 一、什么是网站防盗链&#xff1f; 网站防盗链是指未经授权的网站通过技术手段获取…

95基于matlab的多目标优化算法NSGA3

基于matlab的多目标优化算法NSGA3&#xff0c;动态输出优化过程&#xff0c;得到最终的多目标优化结果。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 95matlab多目标优化 (xiaohongshu.com)

mybatis的数据库连接池

直接看原文 原文链接:【MyBatis】 连接池技术_mybatis自带连接池-CSDN博客 本文先不说springBoot整合mybatis后的 本文讲的是没有被springBoot整合前的mybatis自己的默认的连接池 --------------------------------------------------------------------------------------…

三季度付费用户持续增加,知乎的“吸引力法则”是什么?

在过去的12年里&#xff0c;知乎一直是一个问答社区&#xff0c;通过“一问多答”形成了可以进行专业讨论的社区氛围&#xff0c;并累计完成了上亿次这样的专业讨论&#xff0c;同时还借助平台一问多答的形式打造了网文社区&#xff0c;依托于平台专业职场人的资源池打造了职业…

手写VUE后台管理系统8 - 配置404NotFound路由

设置404页面 配置路由404页面 配置路由 这里配置了两个路由&#xff0c;一个是主页&#xff0c;另外一个则匹配任意路由显示为404页面。因为只配置了两个路由&#xff0c;如果路径没有匹配到主页&#xff0c;则会被自动导向到404页面&#xff0c;这样就可以实现整站统一的404页…

低代码如何降低门槛、快速交付、实现可持续IT架构?

目录 低代码开发模式期望达成的目标 1.降低开发门槛 2.加快系统交付 3.建立可持续发展的IT架构 写在最后 低代码的概念&#xff0c;最早提出的时间是在2014年左右&#xff0c;随后一直处于上升期&#xff0c;随着前两年阿里、腾讯的相继入场&#xff0c;竞争逐步加大。低代…

Redis 之 ZSET 实战应用场景,持续更新!

前言 大白话介绍 Redis 五大基本数据类型之一的 ZSET 开发中常见的应用场景 ZSET 介绍 ZSET 与 SET 相同点&#xff1a;都是是 String类型元素的集合&#xff0c;且不允许重复的成员ZSET 与 SET 不同点&#xff1a;ZSET 每个元素都会关联一个 Double 类型的分数&#xff0c;Re…

用python删除指定目录下带某个字符串的图片

前言&#xff1a; 在文件处理中&#xff0c;有时我们需要批量删除指定文件夹中的特定类型文件。如果文件数量非常庞大&#xff0c;手动删除会非常麻烦&#xff0c;所有可以用 Python 编写一个简单而高效的脚本&#xff0c;自动执行重复性的任务&#xff0c;从而节省时间和精力&…