以下演示操作以该网址中的内容为例:https://learn.letskodeit.com/?_ga=2.143454972.85111248.1555037144-697706367.1554889145

一、如何构建一个有效的XPath

1、在使用XPath定位元素时,我们可以通过“//、/”l来简化我们的Xpath路径。

2、在实现自动化的过程中我们一般使用相对路径查找页面元素,这样效率更高,当页面中的标签节点发生变化时,对使用相对路径的方式来查找元素的影响相对较少。

3、查找liogin的相对路径://div[@id='navbar']/div/div/div/ul/li[2]/a

简化前://div[@id='navbar']/div/div/div/ul/li[2]/a

简化后://div[@id='navbar']//li[2]/a

通过“//”跳过不必要展示的节点,这样既简化了路径又提高了XPath的效率。

二、用Text构建有效的Xpath

1、例如我们需要通过XPath来查找页面中的元素“Enroll now”,元素“Enroll now”包含在标签“a”中,是一个超链接文本。

2、有效的XPath写法://div[@class='homepage-hero']//a[text()='Enroll now']

三、用Contains关键字构建有效的Xpath

1、定位“login”

2、首先我们通过text结合XPath来定位//div[@class='container']//li[2]/a[text()='Login'],从定位结果中我们可以看到并没有准确定位到“Login”

3、步骤2中,在XPath路径没有错误的情况下却没有定位到“Login”,这是因为Login的前后有空格,而text()='Login'必须是文本等于“login”才能够查询到,因此对于这种情况我们需要使用Contains(包含)来进行处理。

4、语法://tag[contains(attribute,‘value’)]

tag=标签

contains关键字

attribute=属性

value=属性值

5、//div[@class='container']//li[2]/a[contains(text(),'Login')]使用contains进行查找

6、contain可以用在属性值上也可以用来查找包含的文本,也可以用来查找包含的属性值。

查找包含的文本://div[@class='container']//li[2]/a[contains(text(),'Login')]

查找包含的属性值:://div[@id='navbar']//a[contains(@class,'navbar-link') and contains(@href,'sign_in')]

四、用StartWith关键字构建有效的Xpath

1、语法://tag[starts-with(attribute,‘value’)]

表示查找包含指定属性值开头的元素

tag=标签

starts-with关键字

attribute=属性

value=属性值

2、 查找“login”链接

3、例如我们使用contain关键字查找属性值包含“navbar-link”的链接时,定位到了2个元素

//div[@id='navbar']//a[contains(@class,'navbar-link')]

4、使用starts-with关键字查找包含“navbar-l”且以“navbar-l”开头的属性值元素,准确的查找到了“Login”

//div[@id='navbar']//a[starts-with(@class,'navbar-l')]

有不明白的同学可以通过群“555191854”交流问我,群里面有一群对软测志同道合的小伙伴。

章节十、8-XPath---如何构建有效的XPath的更多相关文章

  1. 章节十、7-Xpath---Xpath中绝对路径相对路径的区别

    以下演示操作以该网址中的内容为例:https://learn.letskodeit.com/?_ga=2.143454972.85111248.1555037144-697706367.1554889 ...

  2. Python 3标准库 第十四章 应用构建模块

    Python 3标准库 The Python3 Standard Library by  Example -----------------------------------------第十四章   ...

  3. xpath教程 1 - 什么是XPath

    xpath教程 1 什么是XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历. W3School官方 ...

  4. xpath如何使用正则、xpath定位svg标签、xpath常用集合

    自己用到的xpath都收集下咯!!! 持续更新本页面 xpath查找svg图标 xpath('//*[local-name() = "svg" and @class="_ ...

  5. 章节十、1-用ID和XPath、name定位元素

    一.在定位元素时需要HTML标签,HTML是超文本标记语言,我们打开web网页是看到的内容就是通过html语言来实现的,按键盘“F12”调用开发者选项后,“Elements”栏中显示的就是网页的HTM ...

  6. 章节十四、3-执行JavaScript命令

    一.网页页面都是由html+css和javaScript组成的,如果页面中没有javaScript的存在,就不会有操作动作的执行,例如页面上你点击的按钮或者链接都离不开javaScript.(这一节不 ...

  7. Android UI开发第三十篇——使用Fragment构建灵活的桌面

    http://www.lupaworld.com/article-222973-1.html 当我们设计应用程序时,希望能够尽最大限度的适配各种设备,包括4寸屏.7寸屏. 10寸屏等等,Android ...

  8. Android学习路线(二十)运用Fragment构建动态UI

    要在Android系统上创建一个动态或者多面板的用户界面,你须要将UI组件以及activity行为封装成模块.让它可以在你的activity中灵活地切换显示与隐藏. 你可以使用Fragment类来创建 ...

  9. 章节十、3-CSS Selector---用CSS Selector - ID定位元素

    一.如果元素的 ID 不唯一,或者是动态的,或者 name 以及 linktext 属性值也不唯一,对于这样的元素,我们 就需要考虑用 xpath或者css selector 来查找元素了,然后再对元 ...

随机推荐

  1. springcloud和springboot是什么关系?

    [学习笔记] 4)springcloud和springboot是什么关系? 马克-to-win@马克java社区:springboot可以快速开发单个微服务.springcloud是一个基于sprin ...

  2. 手把手教你整合SSM框架(基于课工厂+MyEclipse 2017 CI 10)

    步骤1:myeclipse创建项目,导入spring框架 整合思路:因为spring和spring mvc同源,可以无缝整合,故先整合spring+mybatis,然后配置web.xml.spring ...

  3. php一致性hash算法的应用

    阅读这篇博客前首先你需要知道什么是分布式存储以及分布式存储中的数据分片存储的方式有哪些? 分布式存储系统设计(2)—— 数据分片 阅读玩这篇文章后你会知道分布式存储的最优方案是使用 一致性hash算法 ...

  4. ArcGIS API for JavaScript 4.x 本地部署之Apache(含Apache官方下载方法)

    IIS.Nginx都说了,老牌的Apache和Tomcat也得说一说(如果喜欢用XAMPP另算) 本篇先说Apache. 安装Apache 这个...说实话,比Nginx难找,Apache最近的版本都 ...

  5. osi参考模型(开放系统互连参考模型)

    自互联网诞生以来,随着网络飞速发展,用户迫切要求能在不同体系结构的网络空间交换信息,使得不同的网络能够互联起来. 国际化标准组织(International Organization for Stan ...

  6. python线程(二)代码部分

    使用threading创建线程: from threading import Thread def work(name): print(f"我是线程{name}") if __na ...

  7. IconFont的iOS使用

    IconFont的使用 Iconfont-国内功能很强大且图标内容很丰富的矢量图标库,提供矢量图标下载.在线存储.格式转换等功能.阿里巴巴体验团队倾力打造,设计和前端开发的便捷工具. https:// ...

  8. WPF软件开发系统之三——自助购票取票、自助选座系统

    本系统使用.Net WPF开发,运行于Windows操作系统,电脑或者触摸屏设备(包括竖屏). 本系统开发背景:景点.影院.或商场的自助购票.取票系统. 图书馆.自习室的选座.占座系统. 功能包括:选 ...

  9. 关于'selffilter' is not a registered tag library. Must be one of:

    报错代码: 'selffilter' is not a registered tag library. Must be one of: admin_list admin_modify admin_st ...

  10. 在macos上基于python2.7安装PyQt5

    在python3上面安装PyQt5是十分简单的,可是,在python2.7上安装这个东西,着实让人折腾了一把.要总结一下,年纪大了,记性不好. 首先要安装最新版的Qt和python2,命令如下: br ...