热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[译]Selenium——怎样使用FireBug和FirePath

译自techbeamers,原文链接怎样使用FireBug和FirePath寻找定位器什么是XPATHXPath是用于在网页上唯一的识别元素的技术,它就像HTML元素的地址,比如c

译自techbeamers,原文链接


怎样使用FireBug和FirePath寻找定位器

什么是XPATH

XPath是用于在网页上唯一的识别元素的技术,它就像HTML元素的地址,比如check boxes、text或div等。在Selenium里,我们认为XPath是最值得信赖的定位器之一。关于XPath更多的内容,请阅读 W3School XPath教程 。

什么是FireBug插件

Firebug是Firefox浏览器最著名的附加组件。它跟Firefox的结合产生了大量的工具可用于web开发。它可以让你在网页上实时地修改、管理和监控CSS、HTML和Javascript。

为什么FireBug在Selenium自动化中如此有用

通常情况下,你可以用FireBug插件做四种类型的操作:

  1. 显示源代码 - 它可以让你重新查看Javascript引擎渲染之后的HTML网页。
  2. 高亮显示变化 - 它可以检测并高亮(黄色)显示任何HTML页面的改变。这个特性可以立即获取你的注意,以确保你没有错过什么。
  3. 快速检查 - FireBug有 Inspect 功能,能够让你快速查看你想要的web元素的定位器。
  4. 复制HTML - 你可以轻松地复制HTML网页的代码,或用 innerHTML 获取部分网页,或者某个元素的XPath表达式。

如何在Firefox安装FireBug

你可以在Firefox插件商店轻松下载到FireBug插件。

1- 菜单选项 Tools >> Web Developer >> Get More Tools(中文: 工具 >> Web开发者 >> 获取更多工具

2- 上述动作将会加载一个网页。你会发现一个选项来下载/安装FireBug插件。你需要点击“添加到Firefox”按钮来启动该进程。

download firebug

3- 当点击添加链接,你会看到下面的弹出窗口。现在,单击“安装”按钮即可完成安装。

install firebug

4- 安装完成后,用 F12 快捷键可启动FireBug插件。如下图:

use firebug

学习如何使用FireBug寻找元素定位器

使用FireBug很简单,只需要按照以下步骤:

1- 右键点击任何对象,并按下“用FireBug查看元素”选项,如下图,它会打开一个HTML代码窗口。

2- 从代码窗口,再单击右键,选择“复制XPath”选项来获取元素的XPath定位器,或者你可以尝试其他选项。

copy xpath

什么是FirePath附加组件

这个插件扩展FireBug的功能。它带来能够修改、检查、生产XPath和CSS选择定位器的功能。

为什么FirePath在Selenium自动化中如此有用

1- 你可以提供自定义的XPath值,并直接在网页上测试他们的正确性。

2- 它像FireBug一样返回你选择的元素的XPath

如何在Firefox安装FirePath

我们上面说过FirePath仅仅是扩展FireBug的能力,所以,你应该在安装FireBug之后再安装FirePath。

1- 与安装FireBug的过程相同,只要到 工具 >> Web开发者 >> 获取更多工具

2- 搜索FirePath插件并点击“添加到Firefox”按钮。

add firepath

3- 点击add选项之后,将打开FirePath安装对话框,你必须点击“安装”按钮完成安装。

install firepath

4- 现在,你可以按 F12 快捷键,点击 FirePath 选项打开FirePath工具栏。

use firepath

如何使用FirePath找到元素定位器

FirePath使用起来甚至比FireBug更简单。按照下面的步骤操作:

1- 打开FireBug,然后点击 FirePath 标签。你可以看到一个XPath编辑框,它指向你选择的web元素。在这里你可以自己写XPath,然后用 Highlight 按钮验证它。

highlight xpath

2- FirePath插件很直接地显示XPath,你可以轻松地复制web元素的XPath,并将之用在你的自动化中。

动态 - 安装并使用FireBug和FirePath

现在,是时候总结下你在这篇文章中学到了什么。看看下面的GIF动画,其中包含了插件的安装,以及上面介绍的部分使用流程。

how to install and use firebug and firepath

比较FireBug和FirePath

两者之间的根本区别在于FireBug返回绝对XPath,但FirePath返回的是相对路径。看看下面的示例。虽然你也可以调整FirePath产生绝对XPath。

# 下面示例是FireBug产生的绝对XPath

html/body/div[2]/div/div/aside/div[5]/ul/li[1]/a
# 下面示例是FirePath生成的相对路径

.//*[@id='category-posts-5']/ul/li[2]/a

当然,最后博主还得推荐几篇自己的博客给各位品鉴,主要是对于学习Python + Selenium的同学,可以多看看博主的博客(当然用Java的同学也可借鉴):

1. Python selenium —— 教你在Windows上搭建Python+Selenium环境,这篇博客主要讲了Python Selenium的Windows环境搭建。

2. Python selenium —— webdriver cheat sheet(webdriver备忘单),这篇博客主要分享了Webdriver备忘单,用来对Webdriver中一些方法的速查,很有用。

3. Python selenium —— XPath and CSS cheat sheet,这篇博客主要分享了XPath和CSS的备忘单,放在手边,可以帮助你迅速找到定位某个元素的方法,极力推荐。

4. Python selenium —— Webdriver Exception cheat sheet,这篇博客主要分享了Webdriver异常备忘单,遇到异常怎么办,速查一下什么原因,方便你针对性解决问题。


还有很多,请关注博主的CSDN博客专栏:Python Selenium自动化测试详解

最后,博主最近新建了一个QQ群,用于Python Selenium的技术交流,不讨论其他技术,不讨论其他语言,专注于Python+Selenium的技术交流与分享,感兴趣的同学可以加群(455478219),也可直接点击下面的图片加群:

Python Selenium交流群

欢迎来跟博主讨论Python Selenium有关的问题。


推荐阅读
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
author-avatar
mobiledu2502862117
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有