【自动化测试篇 | Python】Selenium安装及八大元素定位方法 一、自动化测试工具简介这个东西在自动化测试领域非常流行, 它可以支持多种编程语言, 比方说Java这样的, 它的主要用途是帮助完成Web应用测试过程中的自动化环节。当你使用它来搞自动化测试的时候定位页面上的元素这一部分是非常关键的, 因为只有你能够准确无误地找到页面里的元素, 你才能对它们执行各种各样的操作, 比如点击鼠标、往里面输入文字等等。针对如何定位这些元素, 它是提供了多种不同的策略供选择的。二、为了帮助大家安装教程里的环境, 我们需要先了解相关的安装要求, 接着按照具体的步骤进行操作, 然后再去安装那个必须的库文件。大家需要打开自己的命令行工具, 具体来说就是在系统上是CMD软件, 在MacOS系统或是Linux系统上是在终端里面进行输入操作, 然后大家就可以输入以下这些命令来把需要的东西统统下载和安装好了。pip install selenium下载功能是通过和浏览器的相互交互来实现的。根据你所使用的具体浏览器类型的不同, 比如说像是某些常见的浏览器之类的, 就需要去下载那个对应版本的软件或者插件。之后还要去验证这个安装过程是否正确。在完成安装工作以后你可以通过去安排编写一个那种比较简单的脚本的方式, 来检查一下到底有没有把什么东西给安装好。​from selenium import webdriver# 指定WebDriver的路径如果已经添加到PATH则不需要# driver_path /path/to/chromedriver # Chrome的示例# driver webdriver.Chrome(executable_pathdriver_path)# 如果WebDriver已经添加到PATH可以直接这样启动driver webdriver.Chrome() # Chrome的示例# 打开一个网页driver.get(http://www.google.com)# 打印网页标题确认脚本运行成功print(driver.title)# 关闭浏览器driver.quit()​如果这个脚本是能够成功运行的, 并且还会把网页的标题给打印出来, 这个时候你可以直接说一个恭喜, 意思就是你的安装已经算是好了, 同时你的配置工作也已经顺利完成了。需要注意的是第三点内容, 也就是关于八大元素的定位方法, 第一个方法叫做ID定位。通过元素的id属性来进行定位。因为id通常情况下是唯一的嘛, 所以它算是那一种最快的一种以及最可靠的一种的定位方式。等于是用一个空字符串。2Name这个名字的用途和定位在哪里呢?就是通过元素的name属性进行定位操作, 要是页面中出现了好几个元素都用的是同一个name值的话, 那么就会选择第一个出现的元素作为结果返回。等于是用一个空字符串。3Class Name, 这个单词的含义就是类名, 咱们用它来进行定位操作。通过元素的类属性来实施定位动作, 倘若出现多个元素都拥有相同的类名称这一情况, 那么就将第一个被找到的元素予以返回。等于是用一个空字符串。4关于用标签名字来进行定位的情况。它通过元素的标签名来进行定位。如果在页面当中存在多个具有相同标签的元素, 那么这个方法将会返回第一个元素。 .name()5Link Text定位这个链接是专门用来对标签当中的文本进行定位的, 它必须去匹配链接里面那个全部的文本内容。把完整链接的这个文本内容直接给出来。6 Link Text定位这种文本链接也是用来对标签进行定位操作的, 不过在提供的时候, 只需要拿出那部分链接的文本就可以了。 .(部分链接文本)该方法采用的是一种模糊查找的方法, 具体举例来说, 如果当前需要查找的内容是品牌这一项, 那么用户可以选择输入“品”这个字, 或者是选择输入“牌”这个字, 以此来完成对应的查询操作。 .(部分链接文本)7CSS 定位通过CSS选择器来定位元素。这确实是一种威力很大的办法。它能够借助各式各样的CSS属性, 把我们要找的那个元素给抓出来。等于是用一个空字符串。8XPath定位我们可以使用XPath表达式这种方式来完成元素定位这一动作。这种叫做XPath的东西, 本质上其实是在XML文档里面查找相关信息的一种语言形式, 而因为HTML它本身就属于是XML的一种具体实现方式或者说表现形式, 所以我们完全可以借助着这个特点把这个工具应用过来, 进而实现在HTML文档内部去准确地找到对应的某些特定元素的目的。此处务必留心, 当你使用谷歌浏览器去定位网页元素的时候, 尤其是在用开发者工具去查看HTML结构并且把元素的XPath给复制下来的这个过程里, 你有机会碰上两种样子不一样的XPath, 其中的一种被简单地叫做“XPath”, 而另一种则被叫做“完整XPath”或者是“绝对XPath”。这两种类型的XPath都能够被用来对在页面里存在的各类元素进行位置查找, 可是它们之间是存在着一些关键性的不同的。XPath介绍通常所说的 XPath, 是一种查询语言, 这种查询语言是灵活的, 它的作用是在 XML 文档里面, 通过定义特定的路径表达式来选择节点, 在 HTML 文档里面, HTML 文档本身是一种特殊的 XML 文档, 在这个时候, XPath 同样是可以被用来定位元素的。这种类型的XPath通常是相对路径, 它不是从根节点开始的, 而是从一个特定的中间节点开始进行的, 它是根据元素的特定属性、位置或者特定的结构特征来定位元素的, 相对于完整的XPath来说它的灵活性和鲁棒性都更强, 因为它并没有依赖于页面的完整结构, 所以当页面的布局发生变化的时候相对XPath会有更好的适应表现。就是那个被称为是完整的XPath, 也可以说它就是绝对XPath。所谓的完整XPath, 也有人把它叫做绝对XPath, 这种路径的写法是从HTML文档的根节点开始的, 意思就是说要从html这个标签开始往下找, 它得一层一层地向下走, 一直走到那个目标元素所在的位置才会停下来, 这才算是它的完整路径。它在写法上面有个特点, 就是以单斜杠也就是一个正斜杠开头在开头的, 这代表了它是从根节点开始算起的绝对路径, 而且每一级内容都是精确指定的, 目的就是为了最终能够在页面当中找到那个目标元素。不过话又说回来呢, 绝对XPath存在一个明显的缺点, 就是这个写起来是非常依赖于页面具体结构的, 如果说页面结构发生了改变, 这种路径就可能不适用了。如果该页面的布局出现了变化, 哪怕这种变化仅仅是微不足道的细微差别, 那么绝对形式的XPath就可能不再起作用, 之所以会出现这一结果, 是因为在路径序列之中, 只要涉及到任何一个层级的节点发生了变动, 就会导致原本设定的XPath表达式失去准确性。区别总结在现在实际搞使用的过程中, 大伙儿通常会建议还是先拿那个相对Xpath来做首选, 因为按目前来看, 它在大多数时候能让稳定性变得比较好, 同时灵活性也变得很强。可是吧, 实际情况是不一样的, 需求这东西也不固定, 所以到底该怎么选那个最合适的XPath方案, 这件小事就非常重要了, 这一点是必须得注意的。希望看完这篇文章能给现在正在进行学习自动化测试作业的您带来一定的收货另外, 对于接下来准备参加高职组的职业院校技能大赛当中关于软件测试部分的同学们来说, 可以去参考一下我所写的我的其他专栏内容~, 至于软件测试方面的省赛资源以及国赛资源, 都会在后续的时间内在这个专栏里面进行更新内容的。