请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 91|回复: 0

元素定位

[复制链接]

27

主题

28

帖子

244

积分

中级会员

Rank: 3Rank: 3

积分
244
发表于 2022-5-27 18:56:20 | 显示全部楼层 |阅读模式
一、基本元素定位API
示例1:
<input id="account" class="form-contorl" name="account" value="demo" autofocus="" type="text">
1.通过id定位元素:driver.find_element_by_id('account')
2.通过name定位元素:driver.find_element_by_name('account')
3.通过class_name(样式名)定位元素:driver.find_element_by_class_name('form-control')
4.通过tag_name(标签名)定位元素:driver.find_element_by_tag_name('input')
备注:tag_name应该是所有定位方式中最不靠谱的一种,因为在一个页面上相同tag_name的元素极其容易出现

示例2:
<a class="mnav" href="https://news.baidu.com" name="tj_trnews">新闻</a>
1.通过name定位元素:driver.find_element_by_name(’tj_news')
2.通过class_name定位元素:driver.find_element_by_class_name(’mnav')
3.通过link_text定位元素:driver.find_element_by_link_text('新闻')
4、当一个文字很长的链接时,我们可以只取其中的部分,只要取的部分可以唯一标识元素:driver.find_element_by_partial_link_text('新')

二、元素定位API之XPATH
原理:通过元素在html中的路径来定位
使用 斜线来做分割,如果是一组元素,下标从1开始
Xpath6种定位元素的方法:
1、绝对路径
2、相对路径
3、元素索引
4、元素属性:
//标签名[@属性名称=’属性值’]
//标签名[@属性名称1=’属性值1’ and @属性名称2=’属性值2’]
5、元素属性值
6、元素文本

三、元素定位API之css_selector
原理:通过元素在页面布局的位置
一切皆为框
使用空格来分割,遇到class打点. 遇到ID打#
css_selector6种定位元素的方法:
1、绝对路径
2、相对路径
3、元素属性:
标签名[属性名=属性值]
标签名[属性1=值1][属性名2=值2]
4、元素属性值:
动态元素的识别:采用部分属性值匹配,或者叫模糊方法定位
4.1 匹配开始 ^
4.2 匹配结束 $
4.3包含匹配 *任意
5、查询子元素
6、查询兄弟元素

xpath VS css
Xpath:好理解点,但是不方便编写代码,执行效率低,需要遍历整个页面
Css:不好理解,但是编写代码方法,执行效率高(推荐使用css)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2022-8-15 11:50 , Processed in 0.039418 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表