1、coverage包实现代码覆盖率
(1)pip install coverage
(2)coverage run XX.py(测试脚本文件)
(3)coverage report -m 在控制台打印出覆盖率信息报告
(4)coverage html 在同一目录下生成一个htmlcov文件夹,打开文件夹中的index.html即可图形化界面方式查看代码覆盖率
 
2、xpath 理解
(1)XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。
 
3、xpath基本语法
(1)斜线/从根节点开始选择,表示绝对路径
 
(2)双斜杠//相对路径,只要满足条件的都显示
 
 
练习:

选择所有父元素是DDD的BBB元素  语法://DDD/BBB

   <AAA>  
     <
BBB/>  
     <
CCC/>  
     <
BBB/>  
     <
DDD>  
          <
BBB/>  
     </
DDD>  
     <
CCC>  
          <
DDD>  
               <
BBB/>  
               <
BBB/>  
          </
DDD>  
     </
CCC>  
    </
AAA>

 

选择AAA的CCC的所有BBB元素  语法:/AAA/CCC//BBB

   <AAA>  
     <
BBB/>  
     <
CCC/>  
     <
BBB/>  
     <
DDD>  
          <
BBB/>  
     </
DDD>  
     <
CCC>  
          <
DDD>  
               <
BBB/>  
               <
BBB/>  
          </
DDD>  
     </
CCC>  
   </
AAA>

(3)点”.”选取当前节点

(2)点点”..”选取当前节点的父节点

(4)[@]属性
选择所有category属性
 
选取有category属性的book元素
 
选取有category="cooking"属性的book元素
 
选取所有属性category=“web”或category=“paperback”的元素
 
选取有任意属性的book元素
 
选择不具备某种属性的元素
 
相对属性查找
 
(5)找到第一个元素

选择AAA下的第一个BBB元素  语法:/AAA/BBB[1]

   <AAA> 
     <
BBB/> 
     <
BBB/> 
     <
BBB/> 
     <
BBB/> 
   </
AAA>

 
(6)选择AAA下的最后一个BBB元素  语法:/AAA/BBB[last()]

    <AAA> 
     <
BBB/> 
     <
BBB/> 
     <
BBB/> 
     <
BBB/> 
   </
AAA>

(7)选择AAA下的倒数第二个BBB元素  语法:/AAA/BBB[last()-1]

   <AAA> 
     <
BBB/> 
     <
BBB/> 
     <
BBB/> 
     <
BBB/> 
   </
AAA>

(8)选择AAA下的前面两个BBB元素  语法:/AAA/BBB[position()<3]

   <AAA> 
     <
BBB/> 
     <
BBB/> 
     <
BBB/> 
     <
BBB/> 
   </
AAA>

(9)获取AAA下的BBB下的有s属性的CCC元素   语法:/AAA/BBB/CCC[@s]

   <AAA> 
     <
BBB> 
          <
CCC s = "1"/> 
          <
CCC s = "2"/> 
          <
CCC s = "3"/> 
          <
CCC s = "4"/> 
          <
CCC s = "5"/> 
          <
CCC r = "a"/> 
     </
BBB> 
     <
CCC> 
          <
BBB r = "a"/> 
          <
BBB r = "b"/> 
          <
BBB r = "c"/> 
     </
CCC> 
     <
BBB/> 
     <
BBB/> 
  </
AAA>

 

【Python】xpath-1的更多相关文章

  1. 【Python】xpath中为什么粘贴进去代码后老报错?如何在定位元素的时候准确找到定位切入点?

    1. xpath后()中双引号("")里面不能套用双引号(""),把里面的双引号改成单引号('')报错就没有了. 2.如何在定位元素的时候准确找到定位切入点? ...

  2. 【python】列出http://www.cnblogs.com/xiandedanteng中所有博文的标题

    代码: # 列出http://www.cnblogs.com/xiandedanteng中所有博文的标题 from bs4 import BeautifulSoup import requests u ...

  3. 【python】自动更新pu口袋校园活动

    [python]自动更新pu口袋校园活动 脚本目标: 1. 自动爬取pu口袋校园活动,筛选出需要的活动,此处我的筛选条件是线上活动,因为可以不用去就可以白嫖学时 2. 自动发送邮件到QQ邮箱,每次只发 ...

  4. 【Python②】python之首秀

       第一个python程序 再次说明:后面所有代码均为Python 3.3.2版本(运行环境:Windows7)编写. 安装配置好python后,我们先来写第一个python程序.打开IDLE (P ...

  5. 【python】多进程锁multiprocess.Lock

    [python]多进程锁multiprocess.Lock 2013-09-13 13:48 11613人阅读 评论(2) 收藏 举报  分类: Python(38)  同步的方法基本与多线程相同. ...

  6. 【python】SQLAlchemy

    来源:廖雪峰 对比:[python]在python中调用mysql 注意连接数据库方式和数据操作方式! 今天发现了个处理数据库的好东西:SQLAlchemy 一般python处理mysql之类的数据库 ...

  7. 【python】getopt使用

    来源:http://blog.chinaunix.net/uid-21566578-id-438233.html 注意对比:[python]argparse模块 作者:limodou版权所有limod ...

  8. 【Python】如何安装easy_install?

    [Python]如何安装easy_install? http://jingyan.baidu.com/article/b907e627e78fe146e7891c25.html easy_instal ...

  9. 【Python】 零碎知识积累 II

    [Python] 零碎知识积累 II ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个 ...

  10. 【Python】-NO.97.Note.2.Python -【Python 基本数据类型】

    1.0.0 Summary Tittle:[Python]-NO.97.Note.2.Python -[Python 基本数据类型] Style:Python Series:Python Since: ...

随机推荐

  1. webpack配置路径及hash版本号,利用html-webpack-plugin自动生成html模板

    在项目中,因为需要经常更新文件,但是浏览器缓存问题导致js文件不是最新的,所有想办法添加hash值. 并配置webpack打包文件配置路径: 配置webpack打包文件路径,及非入口 chunk文件: ...

  2. 错误:this is incompatible with sql_mode=only_full_group_by

    Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'H5APP_WORK ...

  3. 解决VS Code保存时候自动格式化

    VS code 保存会自动格式化.以前都是alt+shift+F格式化的,现在一保存就格式化 解决方式:找到你的VScode扩展,把JS-CS-HTML Formatter这个插件禁用就可以解决

  4. [LeetCode] 96. Unique Binary Search Trees(给定一个数字n,有多少个唯一二叉搜索树) ☆☆☆

    [Leetcode] Unique binary search trees 唯一二叉搜索树 Unique Binary Search Trees leetcode java 描述 Given n, h ...

  5. 如何仅用递归函数和栈操作逆序一个栈——你要先用stack实现,再去改成递归——需要对递归理解很深刻才能写出来

    /** * 如何仅用递归函数和栈操作逆序一个栈 * 题目: * 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1. * 将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就 ...

  6. js如何将选中图片文件转换成Base64字符串?

    如何将input type="file"选中的文件转换成Base64的字符串呢? 1.首先了解一下为什么要把图片文件转换成Base64的字符串 在常规的web开发过程中,大部分上传 ...

  7. x=x+1, x += 1, x++ 效率分析

    x = x + 1 效率最低 具体如下: 1. 读取右x的地址 2. x + 1 3. 读取左x的地址 4. 将右值传给左边的x(编译器不认为左x和右x是同一个地址) x += 1 其次 1. 读取右 ...

  8. sigmoid belief network boltszmann machine

    because of explaining away, the hidden weights in sigmoid belief network is no longer independent

  9. Uva 12124 Uva Live 3971 - Assemble 二分, 判断器, g++不用map.size() 难度:0

    题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_pr ...

  10. [POJ3481]Double Queue

    Problem 0 结束操作 1 K P 将一个数K以优先级P加入 2 取出优先级最高的那个数 3 取出优先级最低的那个数 Solution Splay模板题 Notice 是输出数而不是输出优先级. ...