目标: Xpath方法

  
1、定位一组元素的方法
 
element = driver.find_elements_by_*("*")      * 可以是name,tag_name,
 
注意:元素定位方法如果带有s,则执行结果返回的是列表类型数据,里边的数据是多个元素对象
 
可以通过列表的下标(索引)获取对应的目标对象元素,再执行操作
 
   依据:
 
  • 没有s和带有s的定位方法的相互依据:
  • 1.如果调用元素定位方法后,再点语法,提示的均为列表方法,则方法带s
  • 2.如果调完元素定位方法后,在点语法,提示的均为元素方法,则方法不带s
 
2、元素定位—XPath方法
 
XPath是XML Path的简称,是一门在XML文档中查找元素信息的语言
 
XML:一种标记语言,用于数据的存储的传递
 
XPath定位策略
注意:使用XPath策略,需要在浏览器工具中根据策略语法,验证成功后再放入代码中使用
1、路径-定位
2、利用元素属性-定位
3、属性与逻辑-定位
4、层级与属性结合
 
无论使用哪一种XPath策略,定位方法都是同一个,不同策略只决定方法的参数的写法
 
   方法:find_element_by_xpath("XPath策略")                
 
路径预习:
 
绝对路径:最外层元素到指定元素之间所有经过元素层级的路径
 以/html,使用/来分割元素层级
 
对页面结构要求比较严格,不建议使用
 
相对路径:匹配任意层级的元素,不限制元素的位置
 
1、相对路径以//开始
2、格式 //input  或者 // *
 
 使用开发者工具XPath快速定位元素:
 
1、目标元素上鼠标邮件——检查
2、元素对应代码上鼠标邮件——copy
3、copy XPath     copy full  XPath
 
注意:使用相对路径时,要注意方法参数的内外引号嵌套问题
 
 
xpath 利用元素属性-定位
说明:通过元素的属性信息来定位元素
 
语法1: //标签名[@属性名 = "属性值"]            //input[@id = "username"]   
语法2: //*[@属性名= "属性值"]                     //*[@id = "username"]
 
 
注意事项:1、目标元素的有些属性和属性值,可能存在多个相同特征的元素,需要注意唯一性
                  2、与class_name 方法不同的是,如果使用具有多个值的class属性,则需要传入全部的属性值
 
xpath 利用属性与逻辑结合
 
说明:解决元素之间个相同属性重名问题
格式://*[@属性1= '属性值1' and @属性2 = '属性值2']                          //*[@name = 'tel' and @class = 'tel']
 
 
xpath 利用层级与属性结合
 
如果通过元素自身的信息不方便直接定位到该元素,则可以先定位到父元素,然后再找到该元素
 
格式 : 父层级定位策略 / 目标元素定位策略
 
XPath延伸:
 
    //*[text()  = ""]                  通过文本信息来定位元素(要求全部文本内容)

    //*[contains(@attribute,"xxx")]       属性中含有xxx 的元素
 
    //*[starts-with(@atttibut,"xxx")]        属性以xxx 开头的元素
 
 
 
 
 
 
 
 
 
 
 
 
 

web自动化03-xpath定位的更多相关文章

  1. selenium自动化之xpath定位*必会技能*

    相信写过ui自动化,对xpath定位感觉会特别亲戚,那么下面给大家分享些我们常常在写脚本时易忽略的一些小细节和技巧.首先使用xpath定位时切忌 不要使用带有空格的属性 不要使用自动生成的id.cla ...

  2. web自动化之元素定位篇

    一.web自动化元素定位的方式有8种.------腾讯课堂 1.1 id定位: 1.2 class定位: 1.3 classname定位 1.4 tag_name 1.5

  3. selenium+python自动化之xpath定位

    在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. 什么是 ...

  4. web自动化:元素定位(二)

    一. 实例 如何定位到下图第二个"抢投标",有一种方法是利用xpath定位 //a[@href="/loan/loan_detail/Id/7190.html" ...

  5. 【WEB自动化】【第一节】【Xpath和CSS元素定位】

    目前自动化测试开始投入WEB测试,使用RF及其selenium库,模拟对WEB页面进行操作,此过程中首先面对的问题就是对WEB页面元素的定位,几乎所有的关键字都需要传入特定的WEB页面元素,因此掌握常 ...

  6. Web自动化框架LazyUI使用手册(3)--单个xpath抓取插件详解(selenium元素抓取,有此插件,便再无所求!)

    概述 前面的一篇博文粗略介绍了基于lazyUI的第一个demo,本文将详细描述此工具的设计和使用. 元素获取插件:LazyUI Elements Extractor,作为Chrome插件,用于抓取页面 ...

  7. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

  8. Web自动化必会知识:「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」

    1.web 基础-html.dom 对象.js 基本语法 Dom 对象里面涉及元素定位以及对元素的修改.因为对元素操作当中涉及的一些 js 操作,js 基本语法要会用.得要掌握前端的基本用法.为什么要 ...

  9. 【WEB自动化测试之控件定位】基于HTML5控件的唯一控件属性定位

      一.WEB控件定位是什么 要想弄懂这个问题,我们还是基于实践来学习.我们先来看一条入门级别自动化测试用例的构成. DemoCase:正确用户名和密码登录博客园,登录成功 URL: https:// ...

  10. 【python+selenium的web自动化】- 8种元素定位方式详解

    ​ 我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确地定位到唯一元素才能进行后续的自动化控制,下面将对各种元素定位方式进行总结归纳. ​ 说明:以下操作统 ...

随机推荐

  1. InstructPix2Pix: 动动嘴皮子,超越PS

    摘要:InstructPix2Pix提出了一种使用文本编辑图像的方法:给定输入图像和编辑指令,告诉模型要做什么,模型将遵循这些指令来编辑图像. 本文分享自华为云社区<InstructPix2Pi ...

  2. 配置 RSTP

    实验1-5-2 配置 RSTP [实验名称] 配置 RSTP. [实验目的] 理解快速生成树协议 RSTP 的配置及原理. [背景描述] 某学校为了开展计算机教学和网络办公,建立了一个计算机教室和一个 ...

  3. Kotlin 与 JAVA 不同之处

    添加kotlin混编支持 要在Android项目中添加Kotlin混编支持,需要进行以下步骤: 在项目的 build.gradle 文件中添加以下代码: kotlin android { ... // ...

  4. vue中关于对象的监听与数组的监听

    数组: 数组可监听到的方法:'push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse' 如果是根据索引改变值,需要使用vue.$set ...

  5. PyQt5学习 (4)--QAbstractButton(下)

    QAbstractBUtton:   所有按钮控件的基类   提供按钮的通用功能   继承自QWidget   属于抽象类别,不能直接去使用,必须借助于子类(除非你觉得子类不够用,想自定义一个按钮) ...

  6. 全网最详细中英文ChatGPT-GPT-4示例文档-智能编写Python注释文档字符串从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

    目录 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node.js接口请求示 ...

  7. CSS伪元素详解以及伪元素与伪类的区别

    前面已经介绍过CSS伪类的知识,具体可见前文 CSS伪类知识详解. 伪元素常常被误解为伪类,主要在于他们的语法相似,都是对于选择器功能的扩展,相似程度很高导致被混淆. 本文通过详细介绍伪元素和常见的使 ...

  8. 在Ubuntu中安装Samba文件服务

    点击蓝字 关注我们 First Frost 在Ubuntu中安装Samba文件服务 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message ...

  9. 有关使用druid配置多数据源多个实例数据源和配置一个实例多个库

    配置多数据源有以下几个说法. 1.多数据库类同时链接mysql,oracle,mongo等等 一般这样的配置这几个数据源不会存在一个实例(机器等)上.也属于多实例数据源. 类似如下图 有的是aliyu ...

  10. BPM工作流中的一些业务场景

    会签 会签是指两个或多个节点同时审批完,才能到下一节点. 案例: 合同流程 1.媒体合同需要CS.财务两部门共同审批确认:2.两个部门无审批顺序之分:3.需要两个部门全部审批通过后,流程才能往下走. ...