关于在自动化中Xpath表达式的书写,其实我也只是刚刚入门,粗略的跟着网上的教程学了一下,这篇我就来分享总结一下我学习到的知识。

首先呢,我们先认识一下什么是Xpath。Xpath是XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。因为Xpath基于XML的树状结构,提供了在数据结构树种寻找节点的能力,所以Xpath被开发者们当做一种小型的查询语言。

关于如何在网页中获取元素的Xpath表达式,我在上一篇文章中就已经介绍过了,在这篇中就不重复叙说了。当然,我在上篇文章上也说了,这种通过工具获取的Xpath表达式,是死板的,不精确的,很容易找不到元素。在实际的项目中,Xpath的表达式可能会是很长的一句,或者关键信息会有相同的存在,所以我们不能够快速准确的获取好唯一的节点信息。这就需要用一些其他的表达方法来帮助我们了。这也是我写这篇文章的用意。介绍几种比较实用的Xpath定位方法。

text()方法:这个方法我们用百度首页上的“新闻”按钮来举例。首先看网页源代码如下

我们可以看得出来在和“新闻”同类型的元素很多,他们的className是相同的,如果这时候源码中对方没有标出不同的name属性,那我对于我们获取新闻这个元素就很难了。这时候我们的text()方法就可以派上用场了。表达式:.//*[@id='u1']/a[text()='新闻']。也就是说,当我们要定位的元素是文本类型,且附近同类型元素太多时,我们就可以用text()方法来快速定位到我们需要的文本元素。

这里我在个人推荐一下,面对这样一个唯一标签下面,一排同类型标签的时候,我们还有一种简单的Xpath表达式来定位元素。例如,我们想要定位的“新闻”元素,它排在这群文本的第一位,表达式可以写成:.//*[@id='u1']/a[1]。代表我要定位id为“u1”标签下所有已“a”标签起头的元素中的第一个元素。

在我目前的自动化学习过程中,我用到方法就是以上者三种方法,当然肯定还有更多其他好用的方法,不过对于我来说,目前这三种已经够用了。所以我也就简略的介绍了一下这三种方法。

Xpath表达式的粗介绍的更多相关文章

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

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

  2. 【XML】XPath表达式

    XPath简介 XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言. XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力.起 ...

  3. EL表达式的简单介绍

    EL表达式的简单介绍 一.JSP EL语言定义 E L(ExpressionLanguage)  目的:为了使JSP写起来更加简单. 表达式语言的灵感来自于ECMAScript 和 XPath 表达式 ...

  4. 第三百三十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式

    第三百三十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式 我们自定义一个main.py来作为启动文件 main.py #!/usr/bin/en ...

  5. 第三百三十六节,web爬虫讲解2—urllib库中使用xpath表达式—BeautifulSoup基础

    第三百三十六节,web爬虫讲解2—urllib库中使用xpath表达式—BeautifulSoup基础 在urllib中,我们一样可以使用xpath表达式进行信息提取,此时,你需要首先安装lxml模块 ...

  6. urllib下使用Xpath表达式示例

    urllib下使用Xpath表达式示例 使用xpath表达式需要先将需要匹配的数据转换成tree格式,这就需要先装lxml模块.安装方法可以使用pip安装. 示例代码: import urllib.r ...

  7. 十八 Python分布式爬虫打造搜索引擎Scrapy精讲—Scrapy启动文件的配置—xpath表达式

    我们自定义一个main.py来作为启动文件 main.py #!/usr/bin/env python # -*- coding:utf8 -*- from scrapy.cmdline import ...

  8. 十五 web爬虫讲解2—urllib库中使用xpath表达式—BeautifulSoup基础

    在urllib中,我们一样可以使用xpath表达式进行信息提取,此时,你需要首先安装lxml模块,然后将网页数据通过lxml下的etree转化为treedata的形式 urllib库中使用xpath表 ...

  9. selenium用css、xpath表达式进行元素定位

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

随机推荐

  1. 关于Python学习的一点说明

    关于Python学习的一点说明 我是用什么地方的资料来学习python的呢? 答案当然是鼎鼎大名的GitHub了. 5万多星推荐,100天让你从入门到精通,你值得拥有,点我进入查看

  2. C++ 函数返回对象时并没有调用拷贝构造函数

    #include <iostream> #include <vector> #include <string.h> using namespace std; cla ...

  3. MS COCO 数据集学习笔记(Common Objects in COntext)

    一.数据来源 COCO中图片资源均引用自Flickr图片网站 二.数据集创建目的 进行图像识别训练,主要针对以下三个方向: (1)object instances (2)object keypoint ...

  4. C# 委托 多线程

    C#委托和多线程[转载] 很多时候写windows程序都需要结合多线程,在.net中用如下得代码来创建并启动一个新的线程.public void ThreadProc();Thread thread ...

  5. 03机器学习实战之决策树scikit-learn实现

    sklearn.tree.DecisionTreeClassifier 基于 scikit-learn 的决策树分类模型 DecisionTreeClassifier 进行的分类运算 http://s ...

  6. 1085. PAT单位排行 (25)

    每次 PAT 考试结束后,考试中心都会发布一个考生单位排行榜.本题就请你实现这个功能. 输入格式: 输入第一行给出一个正整数N(<=105),即考生人数.随后N行,每行按下列格式给出一个考生的信 ...

  7. highlight语法高亮推荐样式

    最近在弄一个类似博客的东西,需要高亮显示代码,所以用了highlight.js来完成 highlight提供了不同的风格我们可以通过更改css样式表来找到适合我们的. 我罗列一部分看看有哪些风格 以下 ...

  8. CF1009F Dominant Indices 长链剖分

    题目传送门 https://codeforces.com/contest/1009/problem/F 题解 长链剖分的板子吧. 令 \(dp[x][i]\) 表示 \(x\) 的子树中的深度为 \( ...

  9. koa2 进阶网站

    http://www.ruanyifeng.com/blog/2017/08/koa.html  阮一峰 https://www.itying.com/koa/ koa2中文网 https://blo ...

  10. xcode7 添加个人账户 is not on any development teams

    XCODE7已经可以免费真机测试, 但添加个人账户后,显示 is not on any development teams , 解决办法: 点击 “-” 删除当前账户,退出XCODE重新打开再添加即可 ...