目标: 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. CURL 常用命令

    参考博客:https://blog.csdn.net/wangpengfei163/article/details/80900391

  2. RealWorldCTF渗透赛第二期复现-ctfshow

    比赛概述 开始时间:2023年3月10日15时 环境保留时间:72小时 环境重置时间:20分钟 官方wp链接:Docs (feishu.cn) [本次复现跟着官方WP进行,只做记录学习之用] 0x1 ...

  3. HTTP 返回状态码403,404,502等不同报错原因及解决思路

    要学会看日志rpm的默认路径 /var/log/nginx/源码的默认路径 安装路径/logs/ 排错思路: 1)服务器启动失败,直接"nginx -t"测试语法   看配置文件是 ...

  4. 最新 umi4-max 如何使用 webpack5 联邦模块

    新项目用 umi4-max 搭建,部分功能想要使用其他项目的功能,不想重新开发,想到了使用 webpack5 的联邦模块,可以直接引用其他项目代码来实现共享代码. 理想很美好,现实很残酷.直接按照 w ...

  5. MyBatisPlus--入门

    入门案例 MyBatisPlus(MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发.提高效率. 1.新建springboot项目(版本2.5.0),仅保留JDBC 添加mybatis ...

  6. Centos7端口开放及查看

    1.开放端口 firewall-cmd --zone=public --add-port=端口/tcp --permanent eg:firewall-cmd --zone=public --add- ...

  7. 微前端框架single-spa子应用加载解析

    作者:京东物流 宁冲 1 前言 什么是微前端? 微前端是指存在于浏览器中的微服务. 本文主要通过对微前端框架single-spa的基座应用加载子应用的single-spa-vue函数库进行分析,通过代 ...

  8. AF_XDP技术简介

    本文分享自天翼云开发者社区@<AF_XDP技术简介>,作者: l****n 一.概述 AF_XDP 是一项新增的,针对高性能数据包处理进行优化的地址族协议.本文档假设读者已经熟悉 BPF ...

  9. Java 8新特性之 Optional 类

    前言 java.util.Optional 是java8中引进的一个新的类,我们通过Optional类的源码可以看到,该方法的作用可以对可能缺失的值进行建模,而不是直接将null赋值给变量. Opti ...

  10. EF Core 使用Azure App Service中的In-App MySQL服务

    Azure App Service 提供了一个应用内的MySQL,可以供测试.开发使用. 前提条件是需要使用Windows的操作系统. 创建完App Server 之后,只需要在设置下开启 MySQL ...