栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

测试小白的心酸路之Python+Selenium元素的定位详解(一)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

测试小白的心酸路之Python+Selenium元素的定位详解(一)

世界上最远的距离大概就是明明看到一个页面元素站在那里 但是我却定位不到!!!
我们在做WEB自动化时 最根本的就是操作页面上的元素 首先我们要能找到这些元素 然后才能操作这些元素。工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素 那么我们该怎么来定位它们呢
selenium定位元素的方法有很多种 但宗旨只有一个 那就是能快速便捷的查找到唯一的元素 以及后期的方便维护 像是通过id、name、class_name、tag_name、link_text等等 但是这些方法局限性太大 拿id属性来说 首先一定不会每个元素都有id属性 其次元素的id属性也不一定是固定不变的。所以这些方法了解一下即可 我们真正需要熟练掌握的是通过xpath和css定位 一般只要掌握一种就可以应对大部分定位工作了。

-----------------------------分割线---------------------------------------------------------------------------------------
首先我先简单介绍一下其他定位方法
1.打开google浏览器 进入百度网页 按F12进入开发者模式 如下图

2.用鼠标点击下图红色框中的箭头——然后鼠标移动到web页面的元素上 此处为百度框 会自动定位到对应的html代码 如下图

3.通过元素存在的id、name、class属性来定位(id属性是唯一的 name class有可能一个页面多个属性是相同的)

driver.find_element_by_id(“kw”)
driver.find_element_by_name(“wd”)
driver.find_element_by_class_name(“s_ipt”)

ps 通过元素的name属性来定位元素 name属性不是绝对唯一的 一个页面内可能存在多个元素的name属性是相同的
1 如果name属性的值‘kw’是唯一的 用find_element_by_name定位元素 返回值是一个值
2 如果name属性的值‘kw‘不是唯一的 用find_elements_by_name定位元素 返回符合条件的多个值 保存在列表中 即返回的是列表
4. 通过元素的标签名tag来定位元素 标签名不是绝对唯一的 一个页面内可能存在多个相同的标签名
如果标签名是唯一的 用find_element_by_tag_name定位元素 返回值是一个值
driver.find_element_by_tag_name(“input”)

如果学过HTML知识 我们就知道HTML是通过tag来定义功能的,比如input是输入 table是表格等等。每个元素其实就是一个tag 一个tag往往用来定义一类功能 我们查看百度首页的html代码 可以看到有很多

等tag,所以很难通过tag去区分不同的元素。基本上在我们工作中用不到这种定位方法。

5. 通过链接元素的文本内容来精确匹配和模糊匹配定位元素 不是绝对唯一的 一个页面内可能存在多个链接元素的文本内容是相同的
1 精确匹配——文本内容为“新闻”
如果文本内容是唯一的 用find_element_by_link_text定位元素 返回值是一个值
driver.find_element_by_link_text(“新闻”)
2 模糊匹配——通过文本内容的部分内容 例如“hao123” 通过“hao”定位
如果文本内容是唯一的 用find_element_by_partial_link_text定位元素 返回值是一个值
driver.find_element_by_partial_link_text(“hao”)

![在这里插入图片描述](https://img-blog.csdnimg.cn/752488855d7d4079872b4c1471d9da7b.png?x-oss-process image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP55m96I-c5ZGA5ZGA,size_16,color_FFFFFF,t_70,g_se,x_16)

后续文章再着重介绍下通过css和xpath元素的定位方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268330.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号