Selenium自动化测试-3.元素定位(1)

这次我们要分享的是对元素的定位,在一个页面中有很多不同的策略来定位一个元素,我们选择最合适的方法即可。

一个页面最基本组成单元是元素,想要定位一个元素,我们需要特定的信息来说明这个元素的唯一特征。

selenium 主要提供了8种定位元素方法:

  1. find_element_by_id

  2. find_element_by_name

  3. find_element_by_link_text

  4. find_element_by_partial_link_text

  5. find_element_by_tag_name

  6. find_element_by_class_name

  7. find_element_by_css_selector

  8. find_element_by_xpath

我们先简单介绍浏览器怎么定位到元素上:

1.打开Chrome浏览器,按F12或浏览器右上角打开开发者工具。

(注:F12打不开的,看快捷键设置,比如Fn+F12打开)  

图片

2.打开开发者工具后,在开发者工具栏左上角点亮箭头,然后鼠标移动到想要定位的页面元素上,如图所示:  

图片

3.定位之后,就可以看到对应的元素属性信息了。

图片

接下来依次介绍前6种定位方法:

1.find_element_by_id 

id就像人的身份证一样,具有唯一性。当然,同一个页面发现两个相同的id也是有可能的,这取决于前端代码的规范程度。所以,通过id来查找元素相对可靠。

我们以百度页面的搜索框为例子,先定位到搜索框上,如下图:id=“kw”

图片

接下来直接写代码,定位搜索框,且输入文本:

图片

(补充:send_keys()表示模拟键盘输入文本)

运行之后,在搜索框输入了小胖虎,表示定位到了搜索框:

图片

2.find_element_by_name

name定位和id定位类似,name就像人的名字一样,元素也会有name属性。

我们还是以百度搜索框为例,定位元素后发现, name="wd"。

<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">

实现代码如下:

图片

运行后,在百度搜索框输入小胖虎,定位成功。

图片

3.find_element_by_link_text

link_text通过文本链接定位元素。

以百度页面的右上角的的文本链接为例:

图片

定位到“hao123”链接上:

<a href="https://www.hao123.com" target="_blank" class="mnav">hao123</a>

我们要取的是a标签中间的“hao123”。

图片

运行之后,打开百度页面,然后点击hao123, 进入hao123页面。

补充:click()是指点击定位到元素之后,进行点击。

4.find_element_by_partial_link_text

partial_link_text方法和link_text类似,只不过是模糊匹配,有时候文本链接很长,我们截取文本的一部分进行定位即可,我们还是定位“hao123”链接元素:

<a href="https://www.hao123.com" target="_blank" class="mnav">hao123</a>

截取“hao”或“123”进行定位,代码如下:

图片

运行后,启动浏览器,打开百度页面,等待2秒钟,打开hao123页面,定位成功。

5.find_element_by_tag_name

tag_name 顾名思义就是tag(标签)属性。

 
  1. <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">

  2. <a href="https://www.hao123.com" target="_blank" class="mnav">hao123</a>

上面的 input, a都叫标签,我们可以发现一个页面相同的标签很多。接下里我们用tag_name属性定位百度搜索框:

图片

运行之后,发现报错了,是因为一个页面,相同的标签太多,想要定位到元素,必须具有唯一性,所以不太推荐使用tag name的方法。

6.find_element_by_class_name

class_name 通过类名定位。

百度搜索框为例,其中class="s_ipt"。

<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">

代码如下:

图片

运行成功后,启动浏览器,打开百度页面,搜索框输入小胖虎,定位成功!

图片

总结:今天介绍的6种定位方法,id定位是最高效也是首选的方法,没有id属性的话,再选择其他定位方法。

下一篇我们将介绍第7种定位方法——xpath定位,功能强大,你值得拥有。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024 年 AI 辅助研发趋势

随着人工智能技术的持续发展与突破&#xff0c;2024年AI辅助研发正成为科技界和工业界瞩目的焦点。从医药研发到汽车设计&#xff0c;从软件开发到材料科学&#xff0c;AI正逐渐渗透到研发的各个环节&#xff0c;变革着传统的研发模式。在这一背景下&#xff0c;AI辅助研发不仅…

浅析assert宏

浅析assert宏 文章目录 浅析assert宏前言1. 简单的断言案例2. 断言与正常错误处理3. 断言的应用场景总结 前言 首先声明一点&#xff0c;断言&#xff08;assert&#xff09;是宏&#xff0c;而非函数。 ​ assert 宏的原型定义在 <assert.h>&#xff08;C&#xff09;、…

DIN11 OC系列导轨式光电隔离变送器模拟信号转换0-75mV0-50mV0-100mV转4-20mA0-5V0-10V

概述&#xff1a; 导轨安装DIN11 IPO OC系列模拟信号隔离放大器是一种将输入信号隔离放大、转换成按比例输出的直流信号混合集成厚模电路。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等需要直流信号隔离测控的行业。此系列产品内部采用了线性光电隔离技术相…

C++ 哈希表OJ

目录 1、1. 两数之和 2、面试题 01.02. 判定是否互为字符重排 3、217. 存在重复元素 4、 219. 存在重复元素 II 5、49. 字母异位词分组 频繁查找某一个数的时候可以使用哈希表&#xff0c;哈希表可以使用容器&#xff0c;也可以使用数组模拟&#xff0c;当元素是字符串中的字…

类和对象周边知识

再谈构造函数 前几期我们把六个默认成员函数一一说明后&#xff0c;构造函数还有一些周边知识。 初始化列表 我们在没有了解初始化列表的时候一般都是使用构造函数初始化或者在声明哪里给予缺省值&#xff0c;那么为什么好药存在初始化列表呢&#xff1f;是因为①.有些值必须…

软件测试面试200问(全)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xf…

CleanMyMac X4.14.7永久免费Mac电脑清理和优化软件

CleanMyMac X 是一款功能强大的 Mac 清理和优化软件&#xff0c;适合以下几类人群使用&#xff1a; 需要定期清理和优化 Mac 的用户&#xff1a;随着时间的推移&#xff0c;Mac 设备上可能会积累大量的无用文件、缓存和垃圾&#xff0c;导致系统运行缓慢。CleanMyMac X 的智能扫…

onlyOffice-windows 安装说明(二)

onlyoffice windows 安装 onlyoffice 支持多个平台比如&#xff1a;Windows Server、Linux、Docker 以下内容是对官网安装说明做了简单翻译&#xff0c;仅供参考&#xff0c;原文链接地址参见文末。 社区版允许您在本地服务器上安装ONLYOFFICE文档&#xff0c;并将在线编辑器…

stl的基本知识学习

1.vector&#xff1a; 2.set&#xff1a; 3.map&#xff1a; 4.栈&#xff1a; 5.队列&#xff1a; 6. unordered_map与unordered_set: 7. 位运算&#xff1a; 8.cctype&#xff1a; 导图&#xff1a;

C++ 路径问题

目录 例1 例2 例3 例4 例5 例6 例1 62. 不同路径 1.初始化 2.当前位置的条数&#xff0c;就是上面位置的条数 &#xff0c;加上其左边位置的条数&#xff0c;dp[i][j] dp[i - 1][j] dp[i][j - 1]; 参考代码 class Solution { public:int uniquePaths(int m, int n) …

CentOS上安装MySQL 5.7和MySQL 8.0教程

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

第二证券|转融通是什么意思?转融通通俗理解

转融通是指证券金融公司借入证券、筹得资金后&#xff0c;再转借给证券公司&#xff0c;是一假贷关系&#xff0c;详细是指证券公司从符合要求的基金办理公司、保险公司、社保基金等组织投资者融券&#xff0c;再将这部分证券转借给其它证券公司。 转融通包含转融券和转融资这…