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表示进一步查找,匹配项模糊查询。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南