绝对路径选择

从根节点开始的,到某个节点,每层都依次写下来,每层之间用 / 分隔的表达式,就是某元素的 绝对路径
  • Xpath : /html/body/div
  • CSS : html>body>div

相对路径选择

选择所有div元素里面的子节点p
  • Xpath : //div//p
  • CSS :
    1. 选择直接子元素(父元素是div的p元素)div>p
    2. 选择后代子元素(div元素里的所有p元素)div p

通配符*

选择所有div节点的所有直接子节点
  • Xpath : //div/*
  • CSS : div>*

根据属性选择

选择所有class为a的b元素
  • Xpath : //b[@class='a']
  • CSS : .a
选择style属性为color的所有元素
  • Xpath : //*[@style='color']
  • CSS : [style='color']
选择a属性包含b的所有元素
  • Xpath : //*[contains(@a,'b')]
  • CSS : [a*='b']
选择a属性开头为b的所有元素
  • Xpath : //*[starts-with(@a,'b')]
  • CSS : [a^='b']
选择a属性结尾为b的所有元素(xpath2.0语法,浏览器不支持)
  • Xpath : //*[ends-with(@a,'b')]
  • CSS : [a$='b']
选择a属性包含a1,b属性开头b1,c属性结尾为c1的d元素
  • CSS : d[a*='a1'][b^='b1'][c$='c1']

按次序选择元素

选择父元素为div中的p类型第2个子元素
  • Xpath : //div/p[2]
  • CSS : div p:nth-child(2)
选择父元素为div的第2个子元素
  • Xpath : //div/*[2]
  • CSS : div :nth-child(2)
选取p类型倒数第2个子元素
  • Xpath : //p[last()-1]
  • CSS : p:nth-last-child(2)
选择a元素的第n个p子节点
  • CSS : a p:nth-of-type(n)
选择a元素的倒数第n个p子节点
  • CSS : a p:nth-last-of-type(n)
选择a元素的偶数子节点
  • CSS : a p:nth-of-type(n)
选择a元素的奇数子节点
  • CSS : a :nth-child(even)
选择a元素的p类型的偶数子节点
  • CSS : a p:nth-of-type(even)
选择a元素的p类型的奇数子节点
  • CSS : a p:nth-of-type(even)

按范围选择元素

选取option类型第1到2个子元素
  • Xpath : //option[position()<=2]
选择class属性为a的前3个子元素
  • Xpath : //*[@class='a']/*[position()<=3]
选择class属性为a的后3个子元素
  • Xpath : //*[@class='a']/*[position()>=last()-2]

组选择

选所有class为a的元素,和所有id为b的元素
  • Xpath : //*[@class='a'] | //*[@id='b']
  • CSS : .a , #b

根据子节点选择父节点

父节点没有特征,但子节点有特征时,可通过子节点定位父节点
查找后2代元素包含a元素的节点
  • Xpath : //a/../..

兄弟节点选择

选择 class 为 a 的元素的所有后续兄弟节点
  • Xpath : //*[@class='a']/following-sibling::*
  • CSS : .a ~ *
选择 class 为 a 的元素的所有前置兄弟节点
  • Xpath : //*[@class='a']/preceding-sibling::*
  • CSS : 不支持

selenium用css、xpath表达式进行元素定位的更多相关文章

  1. Python3.x:Selenium中的webdriver进行页面元素定位

    Python3.x:Selenium中的webdriver进行页面元素定位 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver ...

  2. 网络爬虫之Selenium模块和Xpath表达式+Lxml解析库的使用

    实际生产环境下,我们一般使用lxml的xpath来解析出我们想要的数据,本篇博客将重点整理Selenium和Xpath表达式,关于CSS选择器,将另外再整理一篇! 一.介绍: selenium最初是一 ...

  3. selenium使用笔记(三)——元素定位

    selenium进行自动化测试的一个很重要的东西那就是元素定位,如果元素都没法定位就无法操作它,也就无法进行自动化测试了.网上对于元素定位有很多的介绍,很详细很详细的,但是依然有很多新手总是会遇到无法 ...

  4. selenium自动化测试——常见的八种元素定位方法

    selenium常用的八种元素定位方法 1.通过 id 定位:find_element_by_id() 2.通过 name 定位:find_element_by_name() 3.通过 tag 定位: ...

  5. Python+Selenium笔记(六):元素定位

      (一)  前言 Web应用以及包含超文本标记语言(HTML).层叠样式表(CSS).JS脚本的WEB页面,基于用户的操作(例如点击提交按钮),浏览器向WEB服务器发送请求,WEB服务器响应请求,返 ...

  6. selenium(1)-详细解读元素定位的八种方式

    安装selenium和下载webdriver 安装selenium pip install selenium pip install selenium  -U  (判断是否有最新版本) 下载drive ...

  7. python+selenium笔记(一):元素定位方法

    一.环境准备: 1.浏览器选择:Firefox 2.安装插件:Firebug和FirePath(设置>附加组件>搜索:输入插件名称>下载安装后重启浏览器) 3.安装完成后,页面右上角 ...

  8. Selenium基础知识(8大元素定位概说)

    1. By.name() 页面源码如下: [html] : <button id="gbqfba"aria-label="Google Search" n ...

  9. Selenium+Python系列(二) - 元素定位那些事

    一.写在前面 今天一实习生小孩问我,说哥你自动化学了多久才会的,咋学的? 自学三个月吧,真的是硬磕呀,当时没人给讲! 其实,学什么都一样,真的就是你想改变的决心有多强罢了. 二.元素定位 这部分内容可 ...

随机推荐

  1. 软件或jar包版本的小知识---Beta版、Final版、Free版等

    对于各种软件或jar包,其后面总有不同的"尾巴",如: 等,刚开始接触的肯定有些不知道.那么他们到底代表什么意思呢? 0.Release:发布版 1.Beta版:产品发布之前的测试 ...

  2. MyBatis学习04(注解开发)

    7.使用注解开发 7.1 面向接口编程 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好 在一个面 ...

  3. 【笔记】初探KNN算法(3)

    KNN算法(3) 测试算法的目的就是为了帮助我们选择一个更好的模型 训练数据集,测试数据集方面 一般来说,我们训练得到的模型直接在真实的环境中使用 这就导致了一些问题 如果模型很差,未经改进就应用在现 ...

  4. 【Vulnhub】DC-2靶机

    Vulnhub DC-2 靶机 信息搜集 访问web端发现访问不了,可以观察到相应的URL为域名而不是IP,需要在hosts文件种添加一条DNS记录. host位置:C:\Windows\System ...

  5. VLAN-5 利用三层交换机实现vlan间的路由

    一.实验拓扑图 二.实验编址 三.实验步骤 1.给对应的PC设置对应的IP和掩码还有接口,以及根据需要划分不同的vlan区域,再用文本标记出不同部门. 2.启动设备(全选) 3.首先用ping命令检查 ...

  6. 题解 matrix

    传送门 无比毒瘤的dp题,而且伪装地好像很可做的样子 考场上我给它氪了差不多一个小时最后还是只能扔了个20pts状压走人 以下思路基本均来源于题解: 对于此题,题面中三个限制条件: (1)第 i 行第 ...

  7. js清空input file的值

    原文:js清空input file的值 在做选择本地图片上传的功能时遇到一个问题,第一次点file按钮选择图片完成会触发onchange事件,获取文件后动态在界面上创建img标签展示,但把创建的img ...

  8. SpringBoot整合Quartz定时任务(持久化到数据库)

    背景 最近在做项目,项目中有个需求:需要使用定时任务,这个定时任务需要即时生效.查看Quartz官网之后发现:Quartz提供两种基本作业存储类型: RAMJobStore :RAM也就是内存,默认情 ...

  9. The Programmer's Oath程序员的誓言----鲍勃.马丁大叔(Bob Martin)

    In order to defend and preserve the honor of the profession of computer programmers, I Promise that, ...

  10. Windows上使用Python2.7安装pip

    资料包含: setuptools-33.1.1 pip-18.1 ez_setup.py get-pip.py 方法一 先安装 setuptools: 进入 setuptools 文件夹,运行:pyt ...