selenium常用定位元素属性详解

2023-11-13

1 CSS定位表达式

css 是一种用于发现HTML或XML等文件样式的前端页面语言,主要用于描述页面元素的展现和样式的定义。

css定位方式和xpath定位方式基本相同,只是css定位表达式有其他自己的格式。css定位比xpath定位速度快、稳定。

实例:定位测试网页中,查找第一个div元素中的“确定”按钮

1)使用绝对路径定位元素

css定位表达式:html>body>div>input[value=‘确定’]

使用绝对路径定位属性value的值为“确定”的页面元素,步间通过“>”符号分割,区别路径中的“/”。

不推荐在频繁变化的被测试页面使用绝对路径定位页面元素。

2)使用相对路径定位元素

css定位表达式:input[value=“确定”]

使用相对路径用元素名称和元素属性和属性值进行页面元素的定位

3)使用class名称定位元素

css定位表达式:
input.spread #input是css样式,spread是class名称

使用input页面与安娜苏的class属性名称spread来进行定位,用“.”分割元素名与class属性名,点后面是class属性名称。

2 XPath定位表达式

缺点:

  1. 性能差,定位元素的性能比起大多数其他方法要差;
  2. 不够健壮,XPath会随着页面元素布局的改变而改变;
  3. 兼容性不好,在不同的浏览器下对XPath的实现是不一样的。

优点:
XPath可以通过某个元素找到它的祖先(Ancestors);2. 可以做布尔逻辑判断,例如/button[@value=’submit’ or @name=’tijiao’]

3 XPath定位与CSS定位的比较

XPath定位方式与CSS定位方式相似,XPath定位功能更强大些,但是CSS执行速度快,由于有些浏览器不支持CSS定位方式,并且一般在自动化测试实施过程中使用XPath定位方式要比使用CSS定位方式更普遍,所有建议优先掌握XPath。

1)使用页面元素的文本定位元素

通过text()函数可以定位到元素文本包含某些关键内容的页面元素。
XPath表达式:

  • //a[text()=“搜狗搜索”]
  • //a[.=“搜狗搜索”]
  • //a[contains(.,“百度”)]
  • //a[contains(text(),“百度”)]
  • //a[contains(text(),“百度”)]/preceding::div
  • //a[contains(.,“百度”)]

问题:
如果出现,精确定位不到,可能是有空格,可以使用模糊定位。
在这里插入图片描述

4 使用ID定位

定位语句代码:id名称
user=driver.find_element_by_id(“user”)
user=driver.find_element(by=“id”,value=“user”)

页面id属性都是唯一的,在自动化测试实施过程中,建议与前端开发协商核心页面添加id属性,来提高的程序的可测试性,降低自动化测试的实施难度,提升效率。

5 使用class名称定位

如果在控制台可以查看class名称是否唯一,唯一的话就直接使用名称即可。如果不是唯一的可以使用find_elements_by_class_name进行遍历或数组定位元素。

定位语句代码:
login_btn=driver.find_element_by_class_name(“select_text”)
login_btn=driver.find_element(by=“name”,value=“user”)

实例:以下代码是已做封装
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

selenium常用定位元素属性详解 的相关文章

随机推荐

  • python安装及配置

    1 python的下载及安装 1 1下载 从官网下载 https www python org 如图 点击downloads按钮 在下拉框中选择系统类型 windows Mac OS Linux等 选然后择下载最新版本的Python 1 2
  • JavaArrayList集合基础&学生管理系统

    1 ArrayList 集合和数组的区别 共同点 都是存储数据的容器 不同点 数组的容量是固定的 集合的容量是可变的 1 1 ArrayList的构造方法和添加方法 public ArrayList 创建一个空的集合对象 public bo
  • 爬虫:你一定要知道的模板(附源码)

    爬虫 你一定要知道的模板 附源码 作为一名cv程序员 梦想是造飞机 现实是拧螺丝 普通的爬虫 无非就是固定的模板 xpath bs定位标签 axios返回数据 json解析 selenium json解析版 import requests
  • chatgpt赋能python:Python和数学建模:如何参与数学建模比赛

    Python和数学建模 如何参与数学建模比赛 介绍 数学建模比赛通常是学术界和工业界一起组织的比赛 旨在让学生掌握实际问题的建模方法以及如何处理数据 分析和解决实际问题 Python是一个流行的编程语言 广泛应用于数据科学和数学建模领域 因
  • 单链表中求中间节点

    问题描述 求单链表中间节点的值 如果中间有2个 只要第一个 就是偶数情况下 只要中间的第一个 速度要快 解决方法 可以参照这篇博文 http blog csdn net dawn after dark article details 736
  • PHP与MySQL程序设计 学习笔记 第十章 处理文件和操作系统

    获取路径的文件名部分 不管文件系统中是否存在该路径 可选参数suffix指定一个后缀名 使返回的文件名忽略该后缀 path usr local text txt print basename path n 输出text txt print
  • 【翻译】 一个新的暂停/休眠的基础设施

    LWN订阅者的好处订阅LWN的主要好处是帮助我们继续出版 但除此之外 订阅者可以立即获得所有的网站内容和获得一些额外的网站功能 请今天就注册吧 作者 Jonathan Corbet 2008年3月19日 在参加会议时 你们的编辑多年来一直注
  • c#一个FTP操作封装类FTPHelper

    参考了网上一些代码 作了一些调整优化 using System using System Collections Generic using System Linq using System Text using System Net us
  • Perfmon监控Windows进程性能

    Perfmon简介 Perfmon Performance Monitor 是一款Windows自带的性能监控工具 提供了图表化的系统性能实时监视器 性能日志和警报管理 通过添加性能计数器 Performance Counter 可以实现对
  • Dell电脑插入耳机不能识别

    https blog csdn net weixin 42800268 article details 89418017 utm source app
  • 2020最新微信小程序学习资源汇总,包括文档、视频、系列教程、开源项目、框架!

    利用国庆这段时间收集的一些微信小程序学习资源 希望能够帮助到大家 持续更新 欢迎投稿 开源项目或者文章博客 来源知乎 https zhuanlan zhihu com p 193101814 目录 官网文档 系列教程 视频 开源项目 小程序
  • JavaScript的window.onload事件的理解

    window onload 的作用 window onload 方法用于在网页加载完毕后立刻执行的操作 即当 HTML 文档加载完毕后 立刻执行某个方法 window onload 通常用于 元素 在页面完全载入后 包括图片 css文件等等
  • RKmedia教学(zbar 二维码识别)

    介绍 要想更好的使用 1126 1109 的硬件资源就必须掌握一套媒体框架 此贴会已一个智慧金融的应用场景 介绍一下 RKmedia 的 VI VO RGA 模块以及 zbar 的使用 应用功能 通过 RGB 摄像头识别二维码 代码 git
  • 存储、嵌入式、通信协议-STM32 FMC原理详解

    推荐关注的博主 https blog csdn net as480133937 category 9188655 html https blog csdn net as480133937 category 11691034 html htt
  • vue初识之路由

    目录 前言 使用步骤 vue代码实例 步骤一 引入js文件 步骤二 创建路由实例 步骤三 创建映射关系 步骤四 将路由实例挂载到vue实例 步骤五 使用路由 总结 前言 Vue Router 是 Vue js 官方的路由管理器 它和 Vue
  • Entry模拟对输入的密码进行验证是否符合规范

    需求 1 密码必须不少于6位 2 密码不能包含中文 3 密码不能有特殊字符 4 密码里至少有一个大写字母 效果如图所示 完整代码如下 from tkinter import import re root Tk root title 密码动态
  • 操作系统4-进程,线程,进程控制——lab4内核线程管理,用户进程管理

    大纲一下 最重要的还是要把知识点串起来 知道每一个后知识点概念出现的原因 进程 进程的概念 进程控制块 进程状态 三状态进程模型 挂起进程模型 线程 为什么引入线程 线程的概念 用户线程 内核线程 进程控制 上下文切换 进程创建fork 进
  • spring 使用 jdbcTemplate 查询 MySQL中 timestamp类型数据不准确的问题

    原因 可能是时区设置问题 解决方法 在数据库连接的url中加上时区的设置 如果使用 springboot 在 application properties 文件中添加 spring datasource url jdbc mysql loc
  • 名称解释:Deployment

    简述 Deployment为Pod和ReplicaSet提供了一个声明式定义 declarative 方法 用来替代以前的ReplicationController来方便的管理应用 典型的应用场景包括 定义Deployment来创建Pod和
  • selenium常用定位元素属性详解

    selenium定位元素详解 1 CSS定位表达式 2 XPath定位表达式 3 XPath定位与CSS定位的比较 4 使用ID定位 5 使用class名称定位 1 CSS定位表达式 css 是一种用于发现HTML或XML等文件样式的前端页