目标: 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. Pycharm 搭建 Django 项目

    1. 安装需求 在使用 python 框架 Django 需要注意下面事项 Pycharm 版本是专业版而不是社区版本 Pycharm 配置好了 python 解释器 (一般我们现在用的都是pytho ...

  2. MySQL 中 explain关键字

    更多内容,前往IT-BLOG explain关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理 SQL 语句的.分析查询语句或表结构的性能瓶颈.执行语句:explain + ...

  3. 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(12)-Charles如何使用Repeat功能进行简单压力测试

    1.前言 李四:"今天好累啊,点的我手指都疼了.我一直被要求给后端接口的同事重复发送请求来调试接口." Charles:"哎呀,李四同学,你怎么能一条一条的手动发送呢 我 ...

  4. 如何单机部署多个 MySQL 8.0 实例 ?

    在服务器资源有限的情况下,可利用该方案快速搭建各类 mysql 架构方案.各 MySQL 实例共享一个 mysqld 主程序,但各实例数据目录是独立的,存放在不同的文件夹中:好了.废话不多说,直接上干 ...

  5. [ACM]STL-dfs

    #include<iostream> using namespace std; int book[101],sum,n,e[101][101]; void dfs(int cur) { c ...

  6. React的行内样式与CSS

    如何为组件添加 CSS 的 class? 传递一个字符串作为 className 属性: render() { return <span className="menu navigat ...

  7. elasticsearch升级和索引重建。

    1.背景描述   2020年团队决定对elasticsearch升级.es(elasticsearch缩写,下同)当前版本为0.9x,升级到5.x版本.es在本公司承载三个部分的业务,站内查询,订单数 ...

  8. Redis性能瓶颈揭秘:如何优化大key问题?

    1. 什么是Redis大key问题 Redis大key问题指的是某个key对应的value值所占的内存空间比较大,导致Redis的性能下降.内存不足.数据不均衡以及主从同步延迟等问题. 到底多大的数据 ...

  9. jquery 禁用按钮无效 disabled属性设置无效

    禁用按鈕 $(this).prop("disabled", true); 啟用按鈕 $(this).prop("disabled", false); 禁用按鈕 ...

  10. 第7章. 部署到GiteePages

    Gitee Pages 是一个免费的静态网页托管服务,您可以使用 Gitee Pages 托管博客.项目官网等静态网页.如果您使用过 Github Pages 那么您会很快上手使用 Gitee 的 P ...