XPath编写规则学习
 
辅助工具:firefox安装findbugs,view Xpath
firefox :Xpath验证方式:$x("xpath"); 粘贴xpath语句回车即可
 
定位:
1、依靠自己属性,文本定位:
   //td[text()='test']
   //div[contains(@class,'test')]
   //input[@type='radio' and @value='1']
   //span[@name='bruce' and text()='bruce2'] 或 //span[@name='bruce'][ text()='bruce2'] --and关键字
   //span[@name='bruce' or text()='bruce2'] --or关键字
 
2、依靠父节点定位:
  //div[@class='test mytest']/div
  //div[@id='test']/div
 
3、依靠子节点定位
  //div[div[@id='test']] --寻找含有id=test的div的div
  //div[div[@name='test']]
  //div[p[@id='test']]
 
4、混合型定位
  //div[div[@name='test']]/img
  //td[a//font[contains(text(),'test')]]//input[@type='checkbox']
 
5、高级方法
       
   (1)following-sibling ---寻找紧跟定位到的元素的下一个元素
   例子://input[@id='1234']/following-sibling=input --定位紧跟id=1234的下一个的input元素,同级有效
             //input[@id='1234']/following-sibling::input ,input后可再跟条件
 
   (2)preceding-sibling ---寻找紧跟定位到的元素的上一个元素
   例子://input[@id='123']/preceding-sibling=span --定位紧跟id=123的上一个span元素
             //input[@id='1234']/preceding-sibling::input ,input后可再跟条件
 
     (3)starts-with --判断是否以某关键字开头
      例子://input[starts-with(@id,'test')]
     (4)contains -- 是否包含某关键字
       例子: //td[a//font[contains(text(),'test')]]//input[@type='checkbox']
     (5)not ---不包含某关键字
        例子://input[not(@id='1234')]
                  //span[not(contaions(text(),'xpath'))]
 
6、索引关键字,position,last
    (1)position()=2
             position()>3
             position()<5
       
      例子://div[@id='test']/span[2]或
                //div[@id='test']/span[position()=2] --正数第2个span
 
      (2)last()-1
 
       例子://div[@id='test']/span[last()-2] --倒数第2个span元素
 
7、根据属性定位
  //div[@class] --查找含有class属性的div
  //div[@class='test'] --查找含有class属性且class属性值为test的的div元素
 
8、不常用关键字
     (1)substring,语法:substring(str,start_postion,length) ,从1开始计算
           例子://div[@id='test']/span[substring(@name,3,5)='bruce'] --找name的第三位开始总共5位字母为bruce的span
 
     (2)substring-before ,语法:substring-before(str,substr)
           例子://div[@id='test']/span[substring-before(@class,'-')='spanclass'] --查找分割关键字前面的字符为spanclass的span
 
     (3)substring-after,语法:substring-after(str,substr)
            例子://div[@id='substring']/span[substring-after(@class,'-')='spanclass'] --查找分割关键字后面的字符为spanclass的span
 
9、通配符:*
      //span[@*='bruce']
      //*[@*='bruce']
      //*[@name='bruce']
 
10、axes 轴
   (1)parent 父节点
          例子://div[span[text()='+++test']]/parent::div[contaions(text(),'test')] --查找含有span的text为+++test的的div的父节点
                    //div[span[text()='+++test']]/parent::div/span[contaions(text(),'test')]
 
   (2)ancestor 祖先节点
          例子://div[span[text()='+++test']]/ancestor::div
     
   (3)descendant 孙子节点
           例子://div[span[text()='+++test']]/descendant::div --会将该节点下的所有div打印出来
                      //div[span[text()='+++test']]/descendant::div/span[contaions(text(),'test')]
 
   (4)following 将当前节点下后面所有的指定节点取出
            例子://div[text()='current NodeA']/following::div --会将current NodeA后面的所有的div取出来,后续的div可再加条件判断
       
   (5)preceding 将当前节点下前面所有的指定节点取出
            例子://div[text()='current NodeA']/preceding::div --会将current NodeA前面的所有的div取出来,后续的div可再加条件判断

XPath编写规则学习的更多相关文章

  1. Mayi_XPath编写规则学习

    XPath编写规则学习   辅助工具:firefox安装findbugs,view Xpath firefox :Xpath验证方式:$x("xpath"); 粘贴xpath语句回 ...

  2. Selenium2学习-002-Selenium2 Web 元素定位及 XPath 编写演示示例

    此文主要对 Selenium2 的 Web 元素定位及 XPath 编写示例,敬请各位亲们参阅,共同探讨.若有不足之处,敬请各位大神指正,不胜感激! 通过 Firefox(火狐)浏览器的插件 Fire ...

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

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

  4. Python+Selenium 利用ID,XPath,tag name,link text,partial link text,class name,css,name定位元素

    使用firefox浏览器,查看页面元素,我们以“百度网页”为示例 一.ID定位元素    利用find_element_by_id()方法来定位网页元素对象 ①.定位百度首页,输入框的元素 ②.编写示 ...

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

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

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

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

  7. Hawk 3. 网页采集器

    1.基本入门 1. 原理(建议阅读) 网页采集器的功能是获取网页中的数据(废话).通常来说,目标可能是列表(如购物车列表),或是一个页面中的固定字段(如JD某商品的价格和介绍,在页面中只有一个).因此 ...

  8. Hawk 1.1 快速入门(链家二手房)

    链家的同学请原谅我,但你们的网站做的真是不错. 1. 设计网页采集器 我们以爬取链家二手房为例,介绍网页采集器的使用.首先双击图标,加载采集器: 在最上方的地址栏中,输入要采集的目标网址,本次是htt ...

  9. 【重磅开源】Hawk-数据抓取工具:简明教程

    Hawk-数据抓取工具:简明教程 标签(空格分隔): Hawk Hawk: Advanced Crawler& ETL tool written in C#/WPF 1.软件介绍 HAWK是一 ...

随机推荐

  1. js实现html转pdf+html2canvas.js截图不全的问题

    最近做项目中遇到要把整个页面保存为PDF文件,网上找了一下实现的方法都是 html2canvas.js+jsPdf.js 来实现.实现的过程是 先用html2canvas.js把html页面转成图片, ...

  2. Java中动态代理工作流程

    当谈到动态代理就会想到接口,因为接口是一种规范,动态代理对象通过接口便会很清楚地知道他的实现类(被代理对象)是何种类型的(即有哪些方法).Now,然我们来开始编写一个例子来了解动态代理的全过程: 第一 ...

  3. The based of tuning

    调优目的: 1.  提高资源利用率 2.  找出性能瓶颈并缓解 3.  通过性能管理实现合理的资源分配,提升硬件性价比 调优分层及效率问题: 业务级调优  eg:1)网站使用的Apache—>业 ...

  4. C语言第八次博客作业--字符数组

    一.PTA实验作业 题目1:查验身份证 1. 本题PTA提交列表 2. 设计思路 定义i,flag=1,z,m[11],a[19] 输入次数n for i=1 to n+1 gets(a) 加权求和在 ...

  5. Django+xadmin打造在线教育平台(四)

    七.授课机构功能 7.1.模板继承 (1)创建母板 把org-list.html拷贝到templates目录下,新建base.html,剪切org-list.html内容到里面 再修改一下静态文件的地 ...

  6. CXF-01: WebService的第一个例子

    HelloWorld.java: package com.war3.ws; import javax.jws.WebService; @WebService public interface Hell ...

  7. 前端的UI设计与交互之设计原则篇

    1.亲密性 a)纵向间距示例这三种规格分别为:8px(小号间距).16px(中号间距).24px(大号间距). b)在这三种规格不适用的情况下,可以通过加减『基础间距』的倍数,或者增加元素来拉开信息层 ...

  8. NumPy入门

    import numpy as np 数组与标量之间的运算作用于数组的每一个元素.

  9. linux --> gcc编译之路径搜索

    gcc编译之路径搜索 头文件 --> 搜寻先从-I开始; --> 找gcc的环境变量 : C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PA ...

  10. [poj3254]Corn Fields_状压dp

    Corn Fields poj3254 题目大意:给你一个n*m的地,每一块地可以种或不种,两块种过的地不能挨着,可以一块都不种,问所有的种地方案数. 注释:读入用0和1,1<=n,m<= ...