一、什么是Xpath

XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素。

工具

Xpath的练习建议大家安装火狐浏览器后,下载插件,FireBug。由于最新版火狐不再支持FireBug等开发工具,可以通过https://ftp.mozilla.org/pub/firefox/releases/下载49版本以下的火狐就可以增加Firebug等扩展了。

二、Xpath的使用方法

注:默认死格式 先写 //* 代表定位页面下所有元素

1、Xpath通过标签的属性定位

 @代表以属性定位,后面可以接标签中任意属性
通过ID定位
//*[@id='i1'] 通过Class定位
//*[@class='pg-header'] 通过Name定位
//*[@name='username'] 通过Type定位
//*[@ type='button']

2、当标签的属性重合时,Xpath提供了通过标签来进行过滤

 获取所有input标签元素
//input 获取placeholder='用户名'的input标签元素
//input[@placeholder='用户名'] 这种方式比//*要快 当出现重复时可以使用下标定位,从1开始
//div[@class='inner'][2]

3、当标签页重复时,Xpath提供了层级过滤

例如:找不到儿子,那么就先找他的爸爸,实在不行可以在找他的爷爷

 支持通过 / 进行层级递进,找到符合层级关系的标签
//form/div/input[@placeholder="用户名"] 当层级都重复时,可以通过单个层级的属性进行定位
//form/div[@class='login-user']/input

4、一个元素它的兄弟元素跟它的标签一样,这时候无法通过层级定位到。Xpath提供了索引过滤

 通过索引,在List中定位属性,与python的索引有些差别,Xpath从1开始
//select[@name='city'][1]/option[1]

5、上面集中如果都用上了之后还重复的话,我们就可以使用Xpath提供的终极神器,逻辑运算定位:and和or

通过and来缩小过滤的范围,只有条件都符合时才能定位到
//select[@name='city' and @size='4' and @multiple="multiple"] or就相反了,只要这些筛选中,其中一个出现那么久匹配到了
//select[@name='city' or @size='4']

Selenium学习之==>Xpath使用方法的更多相关文章

  1. selenium定位方式-Xpath使用方法

    什么是Xpath? XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素. 一. 在火狐浏览器上安装Xpath 方法如下: 1.使用 Firefox 访问 https://a ...

  2. (java)selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待

    selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待 本例包括窗口最大化,刷新,切换到指定窗口,后退,前进,获取当前窗口url等操作: import java. ...

  3. 【转】selenium学习路线

    selenium学习路线 配置你的测试环境,真对你所学习语言,来配置你相应的selenium 测试环境.selenium 好比定义的语义---“问好”,假如你使用的是中文,为了表术问好,你的写法是“你 ...

  4. 『心善渊』Selenium3.0基础 — 6、Selenium中使用XPath定位元素

    目录 1.Selenium中使用XPath查找元素 (1)XPath通过id,name,class属性定位 (2)XPath通过标签中的其他属性定位 (3)XPath层级定位 (4)XPath索引定位 ...

  5. 元素定位-XPATH定位方法总结

    1.Xpath定位方法探讨 xpath是比较常用的一种定位元素的方式,因为它很方便,缺点是,消耗系统性能.如果Xpath使用的比较好,几乎可以定位到任何页面元素,而且受页面变化影响较小. 1.1.什么 ...

  6. 【转载】Xpath定位方法深入探讨及元素定位失败常见情况

    一.Xpath定位方法深入探讨 (1)常用的Xpath定位方法及其特点 使用绝对路径定位元素. 例如: driver.findElement(By.xpath("/html/body/div ...

  7. Xpath定位方法深入探讨及元素定位失败常见情况

    一.Xpath定位方法深入探讨 (1)常用的Xpath定位方法及其特点 使用绝对路径定位元素. 例如: driver.findElement(By.xpath("/html/body/div ...

  8. python中selenium操作下拉滚动条方法汇总

    UI自动化中经常会遇到元素识别不到,找不到的问题,原因有很多,比如不在iframe里,xpath或id写错了等等:但有一种是在当前显示的页面元素不可见,拖动下拉条后元素就出来了. 比如下面这样一个网页 ...

  9. python+selenium基础之XPATH定位(第一篇)

    世界上最远的距离大概就是明明看到一个页面元素矗在那里,但是我却定位不到!! selenium定位元素的方法有很多种,像是通过id.name.class_name.tag_name.link_text等 ...

随机推荐

  1. (转)linux chattr lsattr 命令

    转http://www.ha97.com/5172.html PS:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了.chattr命令的作用很大,其中一些功 ...

  2. Ubuntu换阿里云源

    sudo -s cd /etc/apt gedit source.list deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted u ...

  3. php正则替换非站内链接 替换zencart描述内的非本站链接

    php正则替换非站内链接 <?php //要替换的文本,比如产品描述中的文字 header("content-Type: text/html; charset=utf-8") ...

  4. SetConsoleTextAttribute和SetConsoleScreenBufferInfoEx的使用

    主要是作用于控制台文本下划线和改变文本颜色 #include "pch.h" #include <iostream> #include <Windows.h> ...

  5. 【洛谷P4677】山区建小学

    题目大意:给定一个长度为 N 的序列,现选出 M 个点组成一个集合,求这 N 个点到这个集合的最近距离的和是多少. 题解: 状态设计为 dp[i][j] 表示前 i 个点中选出 j 个点的最近距离和是 ...

  6. 基于注解的IOC配置

    1 明确 注解配置和XML配置要实现的功能都是一样的,都是要降低程序间的耦合.只是配置的形式不一样. 关于实际的开发中到底是使用XML还是注解,每家公司有着不同的习惯.具体问题具体分析. 2 环境搭建 ...

  7. @ResponseStatus注解作用

    @ResponseStatus注解有两种用法,一种是加载自定义异常类上,一种是加在目标方法中 这里我们说一下加在目标方法上的这种情况,注解中有两个参数,value属性设置异常的状态码,reaseon是 ...

  8. 【NOIP2016提高A组五校联考1】排队

    题目 分析 首先预处理出每个点的优先级,当有一个人进入时,一定会走到优先级最大的空房间中. 把所有空的房间扔到一个堆中,按优先级大小维护这个堆. 答案怎么求就不说了,很容易想到,就只讲操作吧. 对于第 ...

  9. JS定时循环

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  10. Mapnik使用postgres中的栅格数据

    XML: <?xml version="1.0" encoding="utf-8"?> <Map background-color=" ...