selenium定位元素的方法_selenium元素定位的八种方式

 听首音乐再学习更愉快哟

先来认识一下元素定位的八种方式

# 1. 唯一id定位driver.find_element_by_id()# 2. name定位driver.find_element_by_name()# 3. class属性定位driver.find_element_by_class_name()# 4. 标签名字定位driver.find_element_by_tag_name()# 5. 文本链接定位driver.find_element_by_link_text()# 6. xpath路径定位driver.find_element_by_xpath()# 7. css路径定位driver.find_element_by_css_selector()# 8. 关键字文本链接定位driver.find_element_by_partial_link_text()

查看页面元素

打开网页,右键检查

52defc45da83d512ef7a25b19e97a9ff.png

然后就可以看到整个页面的HTML代码了

e0156b11a97ed938b128e0861dd99abe.png

接着点击左上角的箭头标志,移动鼠标到页面想要定位元素的位置,HTML代码就会自动移动到对应的位置,我们就可以看到他对应的代码信息

e811649c0f2f52d2070a08e8f5272860.png

72610782f7f9371723666784b9b01c71.png

1. 唯一id定位

我们可以在这里看到有一个属性为id的,id一般在HTML里面是唯一存在的,所以元素有id的情况下,我们可以根据id去进行定位

752ca0f077388e3b653a4443686ed468.png

比如我们通过这个id定位,在百度搜索框内输入Python

实现代码

from selenium import webdriver# 创建驱动实例driver = webdriver.Chrome()# 窗口最大化driver.maximize_window()# 打开网页driver.get('https://www.baidu.com/')# 根据id定位到搜索框# send_keys 在输入框内输入值driver.find_element_by_id('kw').send_keys('python')

实现效果

528da7f6acf1449fb0a249801eb368bc.png

2. name属性定位

还是定位搜索框,有个属性为name

2a034a0cd10e9aee0ec997bf305be800.png

实现代码

# 创建驱动实例driver = webdriver.Chrome()# 窗口最大化driver.maximize_window()# 打开网页driver.get('https://www.baidu.com/')# 根据name定位到搜索框# send_keys 在输入框内输入值driver.find_element_by_name('wd').send_keys('python')

实现效果

6e1addb4a9300470ae6aa8e2e5d89419.png

3. class属性定位

仍然是搜索框,有一个属性为class

5861113a25a835b434facfdeae58d8d6.png

但class的属性值不一定全是唯一的,所以我们要确认一下这个值是否唯一,页面Ctrl + f 进行值搜索,确保这个值可以找到且唯一

30bf9eb107cfb33733bb99566302e9df.png

实现代码

# 创建驱动实例driver = webdriver.Chrome()# 窗口最大化driver.maximize_window()# 打开网页driver.get('https://www.baidu.com/')# 根据class定位到搜索框# send_keys 在输入框内输入值driver.find_element_by_class_name('s_ipt').send_keys('这是class定位实现的效果')

实现效果

f3366fac97f9e6b00e10f6362325ba0b.png

4. 标签名字定位

搜索框的标签名字

7abf89584520a3a7c73d315483e80618.png

根据标签名字定位工作中一般是不常用的,因为标签名字不是唯一的,因此如果定位是不唯一的标签名字,就会出现报错情况

# 创建驱动实例driver = webdriver.Chrome()# 窗口最大化driver.maximize_window()# 打开网页driver.get('https://www.baidu.com/')# 根据tag定位到搜索框# send_keys 在输入框内输入值driver.find_element_by_tag_name('input').send_keys('tag定位')

实现结果是报错的,因为这个标签名字不是唯一的,不推荐使用

5. 文本链接定位

文本链接定位,首先得是一个链接才可以,就比如百度页面的这个高考加油

9808c40825d05fb91a3931402cd20d58.png

我们点进去之后会跳转去其他页面

a3dffdbd175e86e43a7330ab209b7318.png

实现代码

# 创建驱动实例driver = webdriver.Chrome()# 窗口最大化driver.maximize_window()# 打开网页driver.get('https://www.baidu.com/')# 文本链接定位# click 点击操作driver.find_element_by_link_text('高考加油').click()

实现效果

2a878e95c821f02884b586259491abf9.png

6. xpath路径定位

还是搜索框,找到元素,右键copy--xpath,当然也可以自己写xpath

428115c1194eb283d1fa0db5f0398724.png

实现代码

# 创建驱动实例driver = webdriver.Chrome()# 窗口最大化driver.maximize_window()# 打开网页driver.get('https://www.baidu.com/')# xpath定位driver.find_element_by_xpath('//*[@id="kw"]').send_keys('xpath')

实现效果

8cf84515099e307a75b2704bfd134202.png

7. css定位

搜索框,找到元素,右键copy--css,当然也可以自己写css

89c3de8e3a8f23f9a864a1f412495192.png

实现代码

# 创建驱动实例driver = webdriver.Chrome()# 窗口最大化driver.maximize_window()# 打开网页driver.get('https://www.baidu.com/')# css定位driver.find_element_by_css_selector('#kw').send_keys('css')

实现效果

41d47b9f6140c5576aaba8d3ffa82fc7.png

8. 关键字文本链接定位

这个是文本链接定位的模糊定位,比如高考加油

bf6f011f71b70bb6491a1fed604b5873.png

实现代码

# 创建驱动实例driver = webdriver.Chrome()# 窗口最大化driver.maximize_window()# 打开网页driver.get('https://www.baidu.com/')# 关键字文本链接定位driver.find_element_by_partial_link_text('高考').click()

实现效果

01041f3a00c61cd6b1ab0ea834f5988a.png

     让生活句号圈住的人,是无法前进半步的。    

5dc5705be43f985df58c701e0bafb061.png

以上就是我们今天分享的内容了,觉得有帮助的记得点个关注哟。

往期文章

Python自动化之初识selenium

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值