自学Python 69 Selenium八大元素定位方法(新版BY方法)

这篇具有很好参考价值的文章主要介绍了自学Python 69 Selenium八大元素定位方法(新版BY方法)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python Selenium八大元素定位方法(新版BY方法)



前言

  在学习使用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代码了。
自学Python 69 Selenium八大元素定位方法(新版BY方法),Python学习,python,selenium
  点击框中左上角的箭头图标,移动鼠标到百度搜索框,就可以自动定位到百度搜索框的HTML代码了,查看到搜索框的属性,我们可以看到搜索框有id,name,class等属性。

自学Python 69 Selenium八大元素定位方法(新版BY方法),Python学习,python,selenium

三、八大元素定位示例

  代码前置操作,导库和包,创建浏览器对象并打开想要用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定位到这个搜索框。
自学Python 69 Selenium八大元素定位方法(新版BY方法),Python学习,python,selenium

代码:


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定位到这个搜索框。

代码:

driver.find_element(By.CLASS_NAME,'s_ipt').send_keys('selenium')

  该行代码实现class定位搜索框,并输入selenium。

4、tag定位

  如果懂HTML知识,我们就知道HTML是通过tag来定义功能的,比如input是输入,table是表格,等等…每个元素其实就是一个tag,一个tag往往用来定义一类功能,我们查看百度首页的html代码,可以看到有很多div,input,a等tag,所以很难通过tag去区分不同的元素。基本上在我们工作中用不到这种定义方法,仅了解就行。下面代码仅做参考,运行时必定报错。

代码:

driver.find_element(By.TAG_NAME,'input').send_keys("selenium")

  该行代码实现tag定位搜索框,并输入selenium, 此处必报错。

5、link定位

  此种方法是专门用来定位文本链接的,比如百度首页右上角有“新闻”,“hao123”,“地图”等链接。
自学Python 69 Selenium八大元素定位方法(新版BY方法),Python学习,python,selenium

代码:

driver.find_element(By.LINK_TEXT,'新闻').click()

  该行代码实现link定位"新闻"这个链接并点击。

6、partial_link定位

  有时候一个超链接的文本很长很长,我们如果全部输入,既麻烦,又显得代码很不美观,这时候我们就可以只截取一部分字符串,用这种方法模糊匹配了。

代码:

driver.find_element(By.PARTIAL_LINK_TEXT,'闻').click()

  该行代码实现partial_link定位"新闻"这个链接并点击。

7、xpath定位

  前面介绍的几种定位方法都是在理想状态下,有一定使用范围的,那就是:在当前页面中,每个元素都有一个唯一的id或name或class或超链接文本的属性,那么我们就可以通过这个唯一的属性值来定位他们。
  但是在实际工作中并非有这么美好,有时候我们要定位的元素并没有id,name,class属性,或者多个元素的这些属性值都相同,又或者刷新页面,这些属性值都会变化。那么这个时候我们就只能通过xpath或者CSS来定位了。

  xpath获取方法:定位到百度搜索框的HTML代码,单击鼠标右键>Copy>Copy XPath
自学Python 69 Selenium八大元素定位方法(新版BY方法),Python学习,python,selenium

代码:

driver.find_element(By.XPATH,"//*[@id='kw']").send_keys('selenium')

  该行代码实现xpath定位搜索框,并输入selenium

8、CSS定位

  这种方法相对xpath要简洁些,定位速度也要快些,但是学习起来会比较难理解,这里只做下简单的介绍。
代码:

driver.find_element(By.CSS_SELECTOR,'#kw').send_keys('selenium')

  该行代码实现CSS定位搜索框,并输入selenium文章来源地址https://www.toymoban.com/news/detail-537037.html

到了这里,关于自学Python 69 Selenium八大元素定位方法(新版BY方法)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium脚本编写及八大元素定位方法

    selenium脚本编写 上篇文章介绍了selenium环境搭建,搭建好之后就可以开始写代码了 基础脚本,打开一个网址 打开本地HTML文件 上篇文章我自己写了一个html文件,放在了当前路径下 第一种方式 通过绝对路径打开 第二种方式 通过相对路径打开 本质上也是通过方法把相对路径转为

    2024年01月16日
    浏览(50)
  • 2.Python中selenium八大元素定位

    目录 如何进行元素定位 浏览器开发者工具介绍 一、id属性定位 二、name定位 三、class_name定位 四、tag_name定位 五、link_text定位 六、partail_link_text定位 七、xpath定位 7.1 选取节点 7.2 谓语 7.3 轴 7.4 函数 7.5 逻辑运算 八、css定位 8.1 css的定义 8.2 css定位策略 1.id选择器 2.class选择器

    2024年02月04日
    浏览(44)
  • 【selenium模块-WEB自动化】八大网页元素定位方法(三)

    一、id 定位 标签的 id 具有唯一性,就像人的身份证。 二、name 定位 name 指定标签的名称,在页面中可以不唯一。 三、class 定位 class 指定标签的类名,在页面中可以不唯一。 四、tag 定位 每个 tag 往往用来定义一类功能,所以通过 tag 来识别某个元素的成功率很低,每个页面

    2024年02月15日
    浏览(50)
  • 【web自动化】selenium+python八大元素定位

    推荐:b站软件测试老白 注意点 1.有id才能能使用id定位 2.id不能重复 通过百度页面,演示如何查找id确定id是否重复,其他方式定位也可以这样搜索 代码如下(示例): 如果有多个class_name,可以使用 find_elements 和取下标的方式 例如:打开哔哩哔哩页面,有番剧,电影等等,他

    2024年01月21日
    浏览(82)
  • selenium新版元素定位方法、元素操作与基本API

    注意:selenium新版元素定位需要导入方法By,使用By来调用元素定位方法     from selenium.webdriver.common.by import By     标签的 id属性具有唯一性,就像人的身份证,不存在根据一个id属性定位到多个标签的情况。假设有个iframe标签如下,其 id 属性值为\\\"actionFrame\\\"。 我们可以通过

    2024年02月03日
    浏览(65)
  • 新版selenium定位全部相同class的元素或定位第二个元素的方法

    使用新版的selenium时发现网页代码中存在相同的class元素,想全部定位该class下的所有元素。以view-source:finance.sina.com.cn/money/globalindex/为例: 打开html代码后发现有多段class为head的代码,想全部提取用做index name。 老版selenium代码: #此段代码将会返回列表中从左往右数的第二个元

    2024年02月11日
    浏览(48)
  • 自动化测试之八大元素定位方式(python3.10+selenium4)

    元素的定位是自动化测试核心。要操作一个对象,首先要识别定位或找到这个对象。为了实现网页整体布局,我们先要知道,一个元素,是如何定位到页面上的某个位置的,这就是元素定位。 系统环境 Windows 11 📌 python3.10.5 🔖 selenium 4.8.0 🚩 注意:以下每种定位方式均有一

    2024年02月03日
    浏览(74)
  • Selenium(一):八大元素定位

    find_element() 中 类型为空,默认为By.ID

    2024年04月23日
    浏览(72)
  • 关于Python中使用selenium八大定位方法

    1.通过id元素定位                             .find_element_by_id(\\\"id\\\") 2.通过name元素定位                       .find_element_by_name(\\\"name\\\")     3.通过路径导航定位                         .find_element_by_xpath(\\\"xpath\\\")          说明 :右键所选的网页元素,点击copy,点击copy ,x

    2023年04月23日
    浏览(47)
  • selenium的八大元素定位方式

    1、什么是元素定位 根据元素的 某个特征 在网页中找到对应的元素,定位元素的目的是为了操作元素,在Web自动化中,定位元素是后续一切操作的前提条件。 2、元素的八大定位方式 2.1、id : 根据标签/元素的id属性值定位 一般情况下元素的id是唯一的,所以通过这个方法可

    2024年03月14日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包