selenium自动化测试入门 —— 获取元素对象!

news2024/11/27 0:47:48

一、元素定位简介

八种属性定位页面元素:

By.ID
By.XPATH
By.LINK_TEXT
By.PARTIAL_LINK_TEXT
By.NAME
By.TAG_NAME
By.CLASS_NAME
By.CSS_SELECTOR

webdriver元素定位方法:

driver.find_element(By.XXX,'元素属性')  # 定位单个元素
driver.find_elements(By.XXX,'元素属性')  # 定位一组元素,返回list列表 

webdriver中元素定位元素的简便方法:

driver.find_element_by_id('元素id属性')  # ------ 最常用,简单
driver.find_element_by_name('元素name属性')  # ------ 最常用,简单
driver.find_element_by_class_name('元素class属性')  # ------ 易重复,看情况使用
driver.find_element_by_tag_name('元素标签名')  # ------ 最不靠谱
driver.find_element_by_link_text('链接文本')  # ------ 精确匹配链接 (<a> 标签中的文字)
driver.find_element_by_partial_link_text(‘部分链接文本’)  # ------ 模糊匹配链接
driver.find_element_by_xpath()  # ------ 最灵活,万能的灵药
driver.find_element_by_css_selector()  # ------ 没xpath灵活

如果需要使用简便的方法点位一组元素,在element后加个s,如,river.find_elements_by_id() ;它返回的也是 list列表。

二、怎么获取元素属性?

第一种:Chrome或者Firefox 打开网页,在需要获取属性的元素上[右键 ==> 检查(or查看元素)]

第二种:Chrome或者Firefox 打开网页,按F12(开发者选项),选择左上角的鼠标指针后单击页面元素

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

三、获取页面元素

1、id元素定位

<input id="query" class="sec-input" name="query" maxlength="100" autocomplete="off" type="text">

driver.find_element_by_id(‘query’)

2、name元素定位

<input id="query" class="sec-input" name="query" maxlength="100" autocomplete="off" type="text">

driver.find_element_by_name(‘query’)

3、class name元素定位

<input id="query" class="sec-input" name="query" maxlength="100" autocomplete="off" type="text">

driver.find_element_by_class_name(‘sec-input’)

4、 tag name元素定位(最不靠谱)

<input id="query" class="sec-input" name="query" maxlength="100" autocomplete="off" type="text">

driver.find_element_by_tag_name(‘input’)

5、 link_text元素定位

页面底部搜狗输入法连接

<a uigs-id="mid_pinyin" href="http://pinyin.sogou.com/" target="_blank"><i class="i1"></i>搜狗输入法</a>

driver.find_element_by_link_text('搜狗输入法')

注意:连接文本是<a></a>标签对之间的文本

6、 partial link text元素定位

<<a uigs-id="mid_pinyin" href="http://pinyin.sogou.com/" target="_blank"><i class="i1"></i>搜狗输入法</a>

driver.find_element_by_partial_link_text(‘输入法’)

7、 XPath元素定位(强大)

学习资料: http://www.w3school.com.cn/xpath/

xpath 可以根据元素的父节点或者哥哥弟弟节点定位到元素。

driver.find_element_by_xpath(‘//form[@id="sf"]//input[@type="text"]’) # 上级节点定位下级子节点
driver.find_element_by_xpath(‘//span[@class="enter-input"]/preceding-sibling::span/input’)  # 通过节点的弟弟节点定位

注意:使用xpath最好不要使用工具获取,手写的可靠性更高

8、css元素定位

css定位元素比xpath块,id,name,class,tag name都是转换为css后定位元素。具体请看find_element方法的代码。

<input id="query" class="sec-input" name="query" maxlength="100" autocomplete="off" type="text">

driver.find_elements_by_css_selector(".sec-input")  #  .表示class
driver.find_elements_by_css_selector("#query")   #  #表示id

四、xpath 与 css 对照表

END今天的分享就到此结束了~!点赞关注不迷路  

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

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

相关文章

按键精灵中常用的命令

1. 声明变量&#xff1a; Dim 2. 注释语句 (1). 单行注释&#xff1a;这是一行注释&#xff0c;使用一个单引号进行注释&#xff1b; (2). 单行注释&#xff1a;// 这是一行注释&#xff0c;使用一对反斜杠进行注释; (3). 多行注释&#xff1a;/*这是多行注释&#xff0c;中…

canal+es+kibana+springboot

1、环境准备 服务器&#xff1a;Centos7 Jdk版本&#xff1a;1.8 Mysql版本&#xff1a;5.7.44 Canal版本&#xff1a;1.17 Es版本&#xff1a;7.12.1 kibana版本&#xff1a;7.12.1 软件包下载地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1jRpCJP0-hr9aI…

基于野狗算法的无人机航迹规划-附代码

基于野狗算法的无人机航迹规划 文章目录 基于野狗算法的无人机航迹规划1.野狗搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用野狗算法来优化无人机航迹规划。 1.野狗搜索算法 …

前端面试题整理(一)

前言&#xff1a; 这篇博客是记录自己在看面试过程中还未完全掌握的前端知识点&#xff0c;也是一些前端面试需要掌握的知识点&#xff08;总结的并不全面&#xff0c;可以参考&#xff0c;具体情况以自己实际为准&#xff09;,并且这篇博客正在持续更新中… 附言&#xff1a…

2023.11.4-Envoy使用案例-oss

2023.11.4-Envoy使用案例 目录 本节实战 实战名称&#x1f6a9; 实战&#xff1a;前端代理-2023.11.2(测试成功)&#x1f6a9; 实战&#xff1a;流量镜像-2023.11.4(测试成功)&#x1f6a9; 实战&#xff1a;故障注入过滤器-2023.11.4(测试成功)&#x1f6a9; 实战&#xff1a…

【Invea Therapeutics】申请7500万美元纳斯达克IPO上市

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;美国生物制药公司【Invea Therapeutics】近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&#xff0c;申请在纳斯达克IPO上市&#xff0c;股票代码为(INAI) &#xff0c;Invea …

基于龙格-库塔算法的无人机航迹规划-附代码

基于龙格-库塔算法的无人机航迹规划 文章目录 基于龙格-库塔算法的无人机航迹规划1.龙格-库塔搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用龙格-库塔算法来优化无人机航迹规划…

xlua源码分析(二)lua Call C#的无wrap实现

xlua源码分析&#xff08;二&#xff09;lua Call C#的无wrap实现 上一节我们主要分析了xlua中C# Call lua的实现思路&#xff0c;本节我们将根据Examples 03_UIEvent&#xff0c;分析lua Call C#的底层实现。例子场景里有一个简单的UI面板&#xff0c;面板中包含一个input fie…

多模态大模型最全综述

由微软7位华人研究员撰写--多模态基础模型已经从专用走向通用 它从目前已经完善的和还处于最前沿的两类多模态大模型研究方向出发&#xff0c;全面总结了五个具体研究主题&#xff1a; 视觉理解视觉生成统一视觉模型LLM加持的多模态大模型多模态agent 1、谁适合阅读这份综述&…

YOLOv8独家原创改进:自研独家创新BSAM注意力 ,基于CBAM升级

💡💡💡本文全网首发独家改进:提出新颖的注意力BSAM(BiLevel Spatial Attention Module),创新度极佳,适合科研创新,效果秒杀CBAM,Channel Attention+Spartial Attention升级为新颖的 BiLevel Attention+Spartial Attention 1)作为注意力BSAM使用; 推荐指数:…

时序预测 | MATLAB实现时间序列ACF和PACF分析

时序预测 | MATLAB实现时间序列ACF和PACF分析 目录 时序预测 | MATLAB实现时间序列ACF和PACF分析基本介绍程序设计参考资料基本介绍 自回归分析是线性回归分析的一种推广,主要是研究一个序列反映的自我因果关系。普通线性回归基于互相关分析,涉及两个以上的变量,一个作为因变…

Iceberg教程

目录 教程来源于尚硅谷1. 简介1.1 概述1.2 特性 2. 存储结构2.1 数据文件(data files)2.2 表快照(Snapshot)2.3 清单列表(Manifest list)2.4 清单文件(Manifest file)2.5 查询流程分析 3. 与Flink集成3.1 环境准备3.1.1 安装Flink3.1.2 启动Sql-Client 3.2 语法 教程来源于尚硅…

产品经理入门学习(一):认识产品经理

参考引用 黑马-产品经理入门基础课程 1. 合格的产品经理 1.1 什么是产品 上述产品的共性&#xff1a;解决某个问题的东西上述产品的区别 有形&#xff08;上图左&#xff09;&#xff1a;颜色、形状、质地和尺寸无形&#xff08;上图右&#xff09;&#xff1a;脑力劳动成果、…

Leetcode—101.对称二叉树【简单】

2023每日刷题&#xff08;十九&#xff09; Leetcode—101.对称二叉树 利用Leetcode101.对称二叉树的思想的实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool isSa…

华为升腾C92安装win7

华为升腾C92安装win7 不知道什么原因&#xff0c;当初那批C92配置到学校班班通时&#xff0c;安装的是Linux系统。这也造成了我错误地认为C92这个小鸡子太弱了&#xff0c;只能运行Linux还行&#xff0c;无法运行Windows的。 其实错了&#xff0c;我们可以在C92开机时&#xff…

轻量封装WebGPU渲染系统示例<15>- DrawInstance批量绘制(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/main/src/voxgpu/sample/DrawInstanceTest.ts 此示例渲染系统实现的特性: 1. 用户态与系统态隔离。 细节请见&#xff1a;引擎系统设计思路 - 用户态与系统态隔离-CSDN博客 2. 高频调用与低频调用隔离。…

IEEE CAI2024

投递链接&#xff1a; ​https://ieeecai.org/2024/

Spring 中 BeanFactory 和 FactoryBean 有何区别?

这也是 Spring 面试时一道经典的面试问题&#xff0c;今天我们来聊一聊这个话题。 其实从名字上就能看出来个一二&#xff0c;BeanFactory 是 Factory 而 FactoryBean 是一个 Bean&#xff0c;我们先来看下总结&#xff1a; BeanFactory 是 Spring 框架的核心接口之一&#xf…

Leetcode—110.平衡二叉树【简单】

2023每日刷题&#xff08;十九&#xff09; Leetcode—110.平衡二叉树 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ int preFunc(struct TreeNode* root) {if(root…

LeetCode算法心得——路径总和||(dfs+双端队列+链表)

大家好&#xff0c;我是晴天学长&#xff0c;简单树的经典题目&#xff0c;是dfs的开端啊&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。 1) .路径总和|| 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子…