find_element_by_xxx: 查找符合规范的元素,并返回查找到的第一个元素(通过使用这个方法)
find_elements_by_xxx: 查找符合规范的元素,并以列表的形式返回

一.八大定位元素的方法

1.根据元素id属性定位元素(重点)

element = driver.find_elemet_by_id('')
2.根据class属性定位元素 (通常不用,因为找到的元素可能不唯一,记住就可以了)

element = driver.find_element_by_class_name('')
3.根据标签名定位元素 (通常不用,因为找到的元素可能不唯一,记住就可以了)

element = driver.find_element_by_tag_name('input')
4.通过链接标签的(a)的文本去查找(不常用)

element = driver.find_element_by_link_text('新闻')

5.通过链接标签的(a)的文本去查找(部分匹配)(不常用)

element = driver.find_element_by_partial_link_text('新')
6.通过元素的name属性定位元素(不常用)

element = driver.find_element_by_name('')
7.通过xpath定位表达式查找元素(重点-定位元素特别精准)-chrpath插件(协助)

浏览器支持在F12,查看源代码处直接copy表达式xpath语句,有绝对路径和相对路径(ctrl+f 验证)

ele = driver.find_element_by_xpath('')
8.通过css定位表达式查找元素

ele = driver.find_element_by_css_selector('')
二、xpath语法

扩展:XPath 教程

xpath定位的优点:更灵活,支持通过文本去匹配 缺点:不够简洁

绝对路径:从根节点开始,一级一级的往下找(不常用,前端页面元素可能随时会有调整)

相对路径://

【1】语法:

/ 代表根节点 ,查找元素只能一级一级往下找

// 代表查找子孙元素,不考虑元素层级关系

. 代表当前已经选中的节点

.. 代表当前已经选中元素的父节点

*通配符(表示匹配所有的元素)

【2】谓语(条件):通过中括号[]来表示

1.下标取值:[index]

xpath的索引是从1开始的
注意点:xpath的下标使用的时候有坑,使用的时候,前面的部分使用括号括起来(索引的优先级高于//)
例子:(//input)[1]
2.通过属性筛选:[@属性名=属性值] @代表找限制条件下,属性名等于属性值的元素

例子://input[@id='kw']
3.通过元素的文本进行定位: [text()='文本值']

例子://a[text()='新闻']
4.部分匹配

starts-with: 匹配是否以xx开头
匹配文本://a[starts-with(text(),'hao123')] 匹配a标签,以hao123开头的元素
匹配属性://a[starts-with(@href,'http://news')] 匹配a标签href属性,以http://news开头的元素
contains:包含匹配
匹配文本://a[contains(text(),'o123')]
匹配属性://a[contains(@href,'http://news')]
【3】逻辑运算符:

and:通过多个条件进行筛选 [条件1 and 条件2]
例子://input[@type='hidden' and @name='rsv_spt']
or : 符合多个条件中的一个即可(不常用)
【4】轴 定位:/轴名称(元素关系)::节点名称 (了解即可)

ancestor 选取当前节点的所有先辈节点(父、祖父等)
三、CSS选择器语法


css定位的优点:比xpath写起来更简洁(不加索引的情况下,加索引比较复杂),在大多数的浏览器上面css定位更快 缺点:不支持通过文本定位
css或者xpath掌握任何一种都可以满足日常工作中的定位需求(可以先掌握一种)

1.层级查找

查找所有的a标签: a
查找所有的a标签或者p标签:a,p
查找id="kw"的所有元素: #kw
选择所有元素:*
选择<div>元素内部的所有<p>元素:div p
选择父元素为<div>元素的所有<p>元素:div>p
选择紧接在<div>元素之后的所有<p>元素
2.谓语(条件)

a[title = 苏宁易购] title属性等于苏宁易购的a标签
a[title *= 苏易] title属性包含苏易的a标签
a[title ^= 苏宁] title属性以苏宁开头的a标签
a[title $= 易购] title属性以易购开结尾的a标签
四、元素的基本操作方法

1.输入 element.send_keys()

2.点击 element.click()

五、对于出来一下马上就会消失的弹窗如何定位

f12 查看源代码 - Source -弹框出现后立马点击,最右边框左上角的暂停按钮,此时再去定位元素即可

如果toast文本找不到的话,使用显示等待,等待元素可见

如果对python自动化测试、web自动化、接口自动化、移动端自动化、大型互联网架构技术、面试经验交流等等感兴趣的老铁们,可以关注我。我会在公众号(程序员阿沐)/群里(810119819)不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。欢迎分享,欢迎评论,欢迎转发。需要资料的同学可以关注我获取资料链接。
————————————————
版权声明:本文为CSDN博主「程序猿-小菜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_61655732/article/details/120958520

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐