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

湖南新梦想

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

selenium元素定位

[复制链接]

16

主题

17

帖子

116

积分

注册会员

Rank: 2

积分
116
发表于 2022-1-14 19:37:43 | 显示全部楼层 |阅读模式
#对页面的控件进行操作-元素定位
# bs.find_element_by_id(id属性值)
优点:准确度定位高
不足:多数的标签都没有id属性
#链接标签的文本
bs.find_element_by_link_text('链接标签的文本内容')
优点:适合代文本的超级链接,同时没有id、、name的属性
不足:不同的超级链接文本可能重复相同,准确度不高
#标签的name属性

bs.find_element_by_name('wd').send_keys('新梦想')
优点:适合有name属性的标签
不足:不同标签的name属性可能相同,而且很多标签开发不会带name属性
#链接标签的文本中的部分值
bs.find_element_by_partial_link_text('百度').click()#查找包含百度的第一个
find_element_by_partial_link_text('链接标签的文本内容')
print(len(bs.find_elements_by_partial_link_text('百度')))
find_elements_by_partial_link_text('链接标签的文本内容')找多个链接
like %链接标签的文本内容%
#通过tag_name(标签名)定位元素:
bs.find_element_by_tag_name('body')
find_element_by_tag_name('标签名')
不足:tag_name应该是所有定位方式中最不靠谱的一种,因为在一个页面上相同tag_name的元素极其容易出现

元素定位:是用唯一性做定位
解决此问题:
#xpath
find_element_by_xpath(‘路径’)
1. 元素所在的路径
优点:无任何属性的标签,能够准确定位
缺点:不稳定,一旦修改了路径,定位无效
绝对路径/
例子:找百度热搜
html/body/div/div/div/div/div/div/div/a/div#百度热搜的绝对路径
bs.find_element_by_xpath('html/body/div/div/div/div/div/div/div/a/div').click()#百度热搜
找新闻
html/body/div/div/div/a
该元素不可交互
如果路径不唯一,可以在路径中明确元素的索引
bs.find_element_by_xpath('html/body/div/div/div[3]/a').click()#百度新闻
相对路径//
bs.find_element_by_xpath('//div[3]/a').click()#百度新闻
/html/body/div[1]/div[1]/div[7]/div/p[4]/a
//*[@id="bottom_layer"]/div/p[4]/a
2. 带条件
<input id=i1name=xxclass=’’>
(相对/绝对路径)/标签名[@属性名=‘属性值’
                      like where 字段名=数据值
例子://*[@id="bottom_layer"]/div/p[4]/a
//div[@class="title-text c-font-medium c-color-t"]#百度热搜
bs.find_element_by_xpath('//div[@class="title-text c-font-medium c-color-t"]').click()
(相对/绝对路径)/标签名[@属性名=‘属性值 and/or @属性名2=‘属性值’....]
bs.find_element_by_xpath('//input[@id="kw" and class="s_ipt"]').click()

回复

使用道具 举报

3099

主题

3499

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12384
发表于 2022-1-14 19:59:44 | 显示全部楼层
超棒!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2022-8-16 02:18 , Processed in 0.040668 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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