Python - selenium-元素定位

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

目录

一.前序工作

二.webdriver测试

三.元素定位方式   

根据ID定位                a = wd.find_element(By.ID, '值')

根据NAME定位                 a = wd.find_element(By.NAME, '值')

根据CLASS_NAME定位            a = wd.find_element(By.CLASS_NAME, '值')  

根据TAG_NAME定位                a = wd.find_elements(By.TAG_NAME, '标签名')

超链接文本定位             a = wd.find_element(By.LINK_TEXT, '')

根据超文本部分内容定位      a = wd.find_element(By.PARTIAL_LINK_TEXT, '')

css表达式      a = find_element(By.CSS_SELECTOR, CSS Selector参数)

四.Xpath定位方式

1.绝对路径         /Element                    

2.相对路径        //Element

(1)属性定位

(2)子元素定位 

(3)父元素定位 

 (4)节点索引定位

(5)通配符定位

(6)属性关键字定位 

五.    find_element 和 find_elements 的区别:


一.前序工作

  1. 安装selenium包: cmd窗口输入命令:pip install selenium
  2. 安装浏览器 Chrome 和 浏览器驱动
  3. 安装浏览器驱动:
    --浏览器驱动的所在目录加入环境变量 Path ,创建对象时可以省略填写的路径参数
  4. 安装软件包

二.webdriver测试

from selenium import webdriver    --导包
from selenium.webdriver.common.by import By   
wd = webdriver.Chrome( )             --创建 WebDriver 对象,指明使用chrome浏览器驱动
wd.get('https://www.baidu.com')   --调用WebDriver 对象的get方法 可以让浏览器打开指定网址

三.元素定位方式   

以百度此input元素为例:Python - selenium-元素定位

  1. 根据ID定位                a = wd.find_element(By.ID, '值')

    # 根据id定位
    a = wd.find_element(By.ID, 'kw')
  2. 根据NAME定位                 a = wd.find_element(By.NAME, '值')

    # 根据name定位
    a = wd.find_element(By.NAME, 'wd')
  3. 根据CLASS_NAME定位            a = wd.find_element(By.CLASS_NAME, '值')  

    # 根据class_name定位
    a = wd.find_element(By.CLASS_NAME, 's_ipt')
  4. 根据TAG_NAME定位                a = wd.find_elements(By.TAG_NAME, '标签名')

    # 根据tag_name定位
    a = wd.find_elements(By.TAG_NAME, 'input')
  5. 超链接文本定位             a = wd.find_element(By.LINK_TEXT, '')

    a = wd.find_element(By.LINK_TEXT, 'hao123')
    
  6. 根据超文本部分内容定位      a = wd.find_element(By.PARTIAL_LINK_TEXT, '')

    a = wd.find_element(By.PARTIAL_LINK_TEXT, 'hao')
    
  7. css表达式      a = find_element(By.CSS_SELECTOR, CSS Selector参数)

    根据id属性,选择元素的语法id,是在id值前面加上一个井号: #id值a 
    element = wd.find_element(By.CSS_SELECTOR, '#ID的值')
    等价于
    element = wd.find_element(By.ID, 'ID的值')
    根据class属性,选择元素的语法,是在 class 值前面加上一个点: .class值a 
    elements = wd.find_elements(By.CSS_SELECTOR, '.CLASS的值')
    等价于
    elements = wd.find_elements(By.CLASS_NAME, 'CLASS的值')

四.Xpath定位方式

 以百度此span元素为例:Python - selenium-元素定位

1.绝对路径         /Element                    

# 根据Xpath绝对定位
a = wd.find_element(By.XPATH, '/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]')

2.相对路径        //Element

(1)属性定位

//element [@属性 = 属性值] 
//element[@属性 = 属性值  and  @属性 = 属性值]

# 属性定位
a = wd.find_element(By.XPATH, '//span[@class = "bg s_ipt_wr new-pmd quickdelete-wrap"]')

(2)子元素定位 

//element/子元素
//element/child::子元素

# 子元素定位
a = wd.find_element(By.XPATH, '//form[@id="form"]/span[1]')

等价于

a = wd.find_element(By.XPATH, '//form[@id="form"]/child::span')

(3)父元素定位 

//element/..
//element/parent::子元素

# 父元素定位 
a = wd.find_element(By.XPATH, '//span[@class = "soutu-btn"]/..')

等价于

a = wd.find_element(By.XPATH, '//span[@class = "soutu-btn"]/parent::span')

 (4)节点索引定位

//element[index]

# 索引定位 
a = wd.find_element(By.XPATH, '//form[@id="form"]/span[1]')

(5)通配符定位

 //* [@* = 属性值] 

# 通配符定位
a = wd.find_element(By.XPATH, '//*[@class = "bg s_ipt_wr new-pmd quickdelete-wrap"]')

a = wd.find_element(By.XPATH, '//span[@* = "bg s_ipt_wr new-pmd quickdelete-wrap"]')

a = wd.find_element(By.XPATH, '//*[@* = "bg s_ipt_wr new-pmd quickdelete-wrap"]')

(6)属性关键字定位  

//element[starts-with(@属性,"值" )]
//element[contains(@属性,"值")]
//element[contains(text( ) ="值" )]

# 属性关键字定位  
a = wd.find_element(By.XPATH, '')

a = wd.find_element(By.XPATH, '')

a = wd.find_element(By.XPATH, '')

五.    find_element 和 find_elements 的区别:

1.使用 find_elements 选择的是符合条件的 所有 元素, 如果没有符合条件的元素, 返回空列表
2.使用 find_element 选择的是符合条件的 第一个 元素, 如果没有符合条件的元素, 抛出 NoSuchElementException 异常
文章来源地址https://www.toymoban.com/news/detail-430195.html

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

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

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

相关文章

  • 自学Python 69 Selenium八大元素定位方法(新版BY方法)_selenium定位元素的方法和优缺点

    文章目录 Python Selenium八大元素定位方法(新版BY方法) 前言 一、常用的八种定位方法(新旧对比) 二、查看网页元素 三、八大元素定位示例 1、id定位 2、name定位 3、class定位 4、tag定位 5、link定位 6、partial_link定位 7、xpath定位 8、CSS定位 在学习使用Selenium对网页元素进行定位时

    2024年04月22日
    浏览(57)
  • Python学习笔记——selenium定位iframe和元素(快速定位)

    在使用selenium过程,发现定位iframe、元素比较困难,所以制作一个辅助小工具。  当前界面没有,调整driver位置 1.Xpath定位  2,.其他定位方式 获取元素、操作失败重复操作,直至操作成功。

    2024年02月13日
    浏览(48)
  • Python Selenium 八大元素定位方法(下)

    今天我们来学习UI自动化中,剩余五个元素定位方法:tag_name、link_text、partial_link_text、Xpath、css_selector 以tag_name元素定位为例 HTML是由不同的标签组成的,每个标签都是指的同一类,所以用tag定位效率低下,一般不建议使用。 以link_text元素定位为例 1、使用F12,定位到含有链接

    2024年02月12日
    浏览(42)
  • 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)
  • 【Python中Selenium元素定位的各种方法】

    1、元素定位操作: 2、创建浏览器驱动操作,导入By模块: 3、ID元素定位 4、name元素定位 5、class_name:class属性元素定位 6、tag_name:标签名元素定位 7、link_text:超链接标签元素定位 8、partial_link_text:超链接标签(模糊)元素定位 9、xpath:路径(绝对路径、相对路径)元素定位

    2024年02月19日
    浏览(37)
  • selenium--面试官问元素定位不到怎么办?工作中还在为元素定位不到而烦恼?看这一文就够了--内附解析跟代码解决案例!让面试官对你刮目相看

    未切换句柄 ===== 切换句柄是什么意思呢。就是你从百度搜索到下面例子的京东界面,浏览器中打开了两个网页,你需要从百度的界面跳转到这么界面。如下: 这里元素定位输入框是id=key但是你会发现定位不到。 from time import sleep from selenium import webdriver fox = webdriver.Firefox() f

    2024年04月13日
    浏览(57)
  • python安装selenium(Firefox和Chrome)+元素定位

    一、下载地址 谷歌浏览器chromedriver驱动下载地址: https://chromedriver.storage.googleapis.com/index.html 火狐浏览器geckodriver驱动下载地址: https://registry.npmmirror.com/binary.html?path=geckodriver/ 二、谷歌浏览器配置: 将下载好的chromedriver驱动解压后放在python文件夹中 三、火狐浏览器: 将下载

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

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

    2024年01月21日
    浏览(82)
  • Python+selenium自动化元素定位防踩坑

    在自动化UI测试过程中常常会在元素定位阶段就踩坑,碰到困扰已久的问题。 以下是个人整理元素定位报错原因和解决方法。 踩坑一:StaleElementReferenceException selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document 异常原因:

    2024年02月06日
    浏览(46)
  • 【Python+Selenium学习系列5】Selenium特殊元素定位之-鼠标悬停操作

    Selenium模拟用户在浏览器中的操作,比如点击按钮。在某些场景下,我们需要 模拟鼠标悬停的操作,来触发一些隐藏的元素。 本文将介绍Python Selenium实现鼠标悬停操作。 鼠标悬停,即 当光标与其名称表示的元素重叠时触发的事件,在Selenium中将键盘鼠标操作封装在Action Cha

    2024年04月10日
    浏览(72)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包