随笔 - 27, 文章 - 0, 评论 - 0, 阅读 - 988
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

selenium---八大定位学习笔记

Posted on   砂锅米粥  阅读(29)  评论(0编辑  收藏  举报

selenium算是比较主流的。
appium,是基于selenium继承实现的。
selenium 是基于JS Core来实现的。

元素的定位:先获取webElement的对象,然后在考虑元素如何操作
所有的UI层的自动化,都是基于元素定位来实现的
所有的被操作的元素都是webElement对象
元素=html标签
实际系统中,元素标签类型不是由表象来决定的,是通过css样式表来决定的。
自动化时,就是基于标签的属性来定位标签。

如何定位精准你需要操作的元素?
(一)八大元素定位
1.id:基于元素属性id值进行定位
driver.find_element_by_id('')

2.name:基于元素属性name值进行定位
driver.find_element_by_name('')

3.link text:主要用于超链接进行定位
driver.find_element_by_link_text('')

4.partial link text:link text的模糊查询操作,类似数据库的 like %,当模糊查询匹配到多个符合条件的元素,匹配第一个
driver.find_element_by_partial_link_text('')
5.class name:基于元素样式进行定位,非常容易遇到重复的
driver.find_element_by_class_name('')
6.tag name:标签名进行定位,重复度最高,只有在需要定位后进行二次筛选的情况下使用
driver.find_element_by_tag_name('')
7.css selector:应用相对较多的行为,最初IE浏览器不支持xpath,完全基于class属性来实现的定位
driver.find_element_by_css_selector('')
8.xpath:目前应用最多的一种行为,基于页面结构来进行的定位
8.1 绝对路径:从html根路径下一层一层往下数,找到对应的层级,从而找到元素。(尽量不要使用)
8.2 相对路径:基于匹配制度来查找元素,依照xpath语法
例如://*[@id="kw"]
//表示从根路径下开始查找元素
*表示任意元素
[]表示筛选条件(查找函数)
@表示基于属性来筛选,例如@id="kw"表示基于id属性值为kw的条件来进行筛选。
8.3 确认xpath路径是否正确:
1.在开发者工具elements页面使用ctrl+f查找,进行判断
2.在console中输入$x('')进行校验
8.4 如果要基于text来定位元素
在[]中添加text()="文本内容"进行查找,例如//a[text()='登录']
8.5 driver.find_element_by_xpath('')
当定位元素无法直接定位时,可以通过定位子级元素返回父级来获取元素。
/.. :返回父级
//input[contains(@id,'kw')]
//input[contains(text(),'kw')]
contains表示进一步查找,匹配项模糊查询。

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示