前言
这两天刚好学了一点selenium,马上就来试着玩了一下xpath的定位,xpath算是集其他几个分支定位的大成了。当然一开始傻傻的按部就班的用理论来一个个尝试,结果在找了几个常用的web来实践定位元素的时候突然开窍,咋忘记了这么好使一个工具呢!!
ps:还是希望大家老老实实能先看懂xpath定义的原理再在这个基础上用这种方法,否则方法用时爽,一直用一直爽。。。就不会去关心原理了~
方法
其实真的非常简单,打开f12浏览器开发者工具,选择elements也就是“元素”界面。如下图所示,找到我们想要输入的框的部分,比如我们来找百度(www.baidu.com)的输入框对应的xpath。用一个比较快速的效率就是先直接ctrl+f 来过滤搜索我们的input标签,然后运气不错顺着几个就能找到对应的输入框,如下图所示。
这时候,见证奇迹的时刻到了,我们只需要把鼠标悬浮到想定位的地方,然后点击右键就下拉列表出现copy-复制,选择我们的xpath,这时候就生成了对应元素定位的xpath了。
有一说一,确实很方便,然后捏,我们就可以使用selenium在python当中运行起来,简简单单的搞一个我们想要的效果了,比如我们在百度一下当中搜索“自动化测试”,然后再点击,只需要我们的脚本运行跑一下就可以了,对于这样的动作,一个个放大就会成为我们的自动化测试。脚本如下图所示
这里面的xpath,就是我们所获取到的,可以看到我使用原先按照元素标签定位的又臭又长的方法,实际上右键复制出来的定位方法也是最常用的方法以 //*[@id='kw']
这里就是以//相对路径,*通配符匹配所有标签,[]中的是对应元素和它的值,@后面加的就是属性,id可以说是大部分标签里重复概率最低的了,因此这种格式也是最长见的;当然也有其他有意思的xpath搜索,比如//标签[contains(@属性,'属性值')] 和 //*[text()='a'] -- a指的是全部的属性文本,这里要求精准匹配。好了,说了这么多,还是上面用的懒人法最好使。。。
总结
其实这是我写的最短的一篇博文了,主要目的是希望每天都能写一点学到的知识,其实最近也开始在写python的复习部分了,毕竟python学好真的很不错ui自动化接口自动化都是手到擒来。keep hungry,keep foolish