文章目录
- Python Selenium八大元素定位方法(新版BY方法)
- 前言
- 一、常用的八种定位方法(新旧对比)
- 二、查看网页元素
- 三、八大元素定位示例
-
-
1、id定位
- 2、name定位
- 3、class定位
- 4、tag定位
- 5、link定位
- 6、partial_link定位
- 7、xpath定位
- 8、CSS定位
-
1、id定位
前言
在学习使用Selenium对网页元素进行定位时,发现很多教程依然使用老版的元素定位方法,但是对于新版selenium来说,已经弃用了之前的元素定位方法,所以在使用的时候会发现有报错,会被一条横线划掉。所以今天来总结一下新版selenium对网页元素进行定位的操作方法。
一、常用的八种定位方法(新旧对比)
先介绍一下selenium定位元素的一些常见方法
定位方法 | 新版 | 旧版 |
---|---|---|
by_id | find_element(By.ID,value=’’) | find_element_by_id() |
by_name | find_element(By.NAME,value=" ") | find_element_by_name() |
by_class_name | find_element(By.CLASS_NAME,value=" ") | find_element_by_class_name() |
by_tag_name | find_element(By.TAG_NAME,value=" ") | find_element_by_tag_name() |
by_link_text | find_element(By.LINK_TEXT,value=" ") | find_element_by_link_text() |
by_partial_link_text | find_element(By.PARTIAL_LINK_TEXT,value=" ") | find_element_by_partial_link_text() |
by_css_selector | find_element(By.CSS_SELECTOR,value=" ") | find_element_by_xpath() |
by_xpath | find_element(By.XPATH,value=" ") | find_element_by_xpath() |
Selenium八大元素定位方法的优缺点对比如下:
● 1. ID定位
优点:ID是唯一的,定位速度快。
缺点:有些元素没有ID,不适用。
● 2. Name定位
优点:Name属性通常是唯一的,定位速度快。
缺点:有些元素没有Name属性,不适用。
● 3. Class Name定位
优点:Class Name属性通常是唯一的,定位速度快。
缺点:有些元素没有Class Name属性,不适用。
● 4. Tag Name定位
优点:Tag Name属性通常是唯一的,定位速度快。
缺点:有些元素没有Tag Name属性,不适用。
● 5. Link Text定位
优点:Link Text属性通常是唯一的,定位速度快。
缺点:只适用于链接。
● 6. Partial Link Text定位
优点:Partial Link Text属性通常是唯一的,定位速度快。
缺点:只适用于链接。
● 7. CSS Selector定位
优点:CSS Selector可以通过多个属性组合定位元素,定位灵活。
缺点:CSS Selector语法较为复杂,学习成本较高。
● 8. XPath定位
优点:XPath可以通过多个属性组合定位元素,定位灵活。
缺点:XPath语法较为复杂,定位速度较慢。
二、查看网页元素
以谷歌浏览器打开百度为例,点击右上角>更多工具>开发者工具,或者点击鼠标右键选择>检查,就可以看到整个页面的html代码了。
点击框中左上角的箭头图标,移动鼠标到百度搜索框,就可以自动定位到百度搜索框的HTML代码了,查看到搜索框的属性,我们可以看到搜索框有id,name,class等属性。
三、八大元素定位示例
代码前置操作,导库和包,创建浏览器对象并打开想要用Selenuim操作的网页。
# 导入selenium库
from selenium import webdriver
# 导入time库
import time
# 导入By类,用于指定元素定位方式
from selenium.webdriver.common.by import By
# 创建Chrome浏览器对象
driver = webdriver.Chrome()
# 设置要访问的网址
url = 'http:www.baidu.com'
# 打开网址
driver.get(url = url)
1、id定位
从上面定位到的搜索框属性中,有个id="kw"的属性,我们可以通过这个id定位到这个搜索框。
代码:文章来源地址https://www.toymoban.com/news/detail-855317.html
driver.find_element(By.ID, 'kw').send_keys('Selenuim')
该行代码实现在百度搜索框中输入“Selenuim”。
2、name定位
从上面定位到的搜索框属性中,有个name="wd"的属性,我们可以通过这个name定位到这个搜索框。
代码:
driver.find_element(By.NAME,'wd').send_keys('selenium')
该行代码实现name定位搜索框,并输入selenium。
3、class定位
从上面定位到的搜索框属性中,有个class="s_ipt"的属性,我们可以通过这个class定位到这个搜索框。文章来源:https://www.toymoban.com/news/detail-855317.html
代码:
driver.find_element(By.CLASS_NAME,'s_ipt').send_keys('selenium')
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)**
mg_convert/9f49b566129f47b8a67243c1008edf79.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)**
<img src="https://
到了这里,关于自学Python 69 Selenium八大元素定位方法(新版BY方法)_selenium定位元素的方法和优缺点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!