程序笔记   发布时间:2022-07-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Selenium自动化测试-3.元素定位(2)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在上一篇:@R_874_10288@nium自动化测试-元素定位(1)c;我们分析了id࿰c;name, class, tag, link_text及partial_link_text 共6种定位方法࿰c;其中id、name最常用。

Selenium自动化测试-3.元素定位(2)

 有时候我们发现网站并没有id、name等属性。那么࿰c;我们可以用更高级的定位方法——xpath来定位元素。

什么是xpath?

Selenium自动化测试-3.元素定位(2)

xpath是一种在XML文档中定位元素的语言。因为HTML可以看做XML的一种实现࿰c;所以@R_874_10288@nium用户可以使用这种强大语言在web应用中定位元素࿰c;xpath是一种路径定位的方式。

xpath扩展了上面id和name等定位方式࿰c;提供了很多种可能性。

语法格式:find_elemenT_By_xpath()

以下࿰c;我们介绍两种xpath定位方式:前端工具定位和手写xpath。

前端工具定位元素

Selenium自动化测试-3.元素定位(2)

 1.打开Chrome浏览器开发者模式࿰c;然后定位到百度搜索框。

Selenium自动化测试-3.元素定位(2)

2.定位到元素后࿰c;鼠标移至标签元素࿰c;右键后选择copy࿰c;最后选择Copy XPath࿰c;就复制了xpath路径了。

Selenium自动化测试-3.元素定位(2)

3.复制xpath后࿰c;就可以用Xpath定位百度搜索框了。

Selenium自动化测试-3.元素定位(2)

运行之后࿰c;百度搜索框输入了小胖虎࿰c;用Xpath定位成功。

手写xpath定位元素

Selenium自动化测试-3.元素定位(2)

 以下介绍怎么手写xpath。

xpath 使用路径表达式在 XML 文档中选取节点。节点是沿着路径或者 step 来选取的࿰c;下面列出了最有用的路径表达式:

Selenium自动化测试-3.元素定位(2)

xpath绝对路径:

以百度搜索框为例࿰c;绝对路径如下所示。

Selenium自动化测试-3.元素定位(2)

那么我们可以这样写

find_elemenT_By_xpath("/html/body/div/div/div/div/div/from/span/input")

Selenium自动化测试-3.元素定位(2)

运行之后࿰c;打开百度页面࿰c;输入小胖虎࿰c;xpath绝对路径定位成功。

但是绝对路径定位࿰c;只要页面元素稍微改动࿰c;就会定位失败࿰c;维护成本比较高࿰c;所以并不建议使用Xpath绝对定位的方式。

xpath相对定位:

1.利用属性定位

通过元素的属性定位࿰c;如ID、name、class等属性࿰c;属性匹配定位语法:“//标签名[@属性='属性值'] "࿰c;

//表示当前节点࿰c; @表示选取属性 ࿰c;标签名比如div, span等࿰c;也可用 * 表示任意标签。

以百度搜索框为例:

<input type="text" class="s_ipt" NAME="wd" id="kw" maxlength="100" autocomplete="off">

我们用id属性࿰c;xpath定位代码如下:

Selenium自动化测试-3.元素定位(2)

其他属性如name、class等࿰c;也是相同的定位写法。

2.利用层级加属性定位

比如找不到小胖虎࿰c;可以通过先找到小胖虎的爸爸࿰c;然后找到小胖虎。

以百度搜索框为例, 我们可以找到搜索框input标签的上级标签span, 上上级标签form:

Selenium自动化测试-3.元素定位(2)

我们通过上级标签span࿰c;及上上级标签form分别进行定位:

Selenium自动化测试-3.元素定位(2)

运行之后࿰c;发现通过上级标签span并不能定位到搜索框࿰c;而通过上上级标签form可以定位到࿰c;所以实战要灵活运用࿰c;直到定位到元素。

3.利用逻辑运算符定位

逻辑运算符比如and ,or ,not ࿰c;多种条件组合定位。

用百度搜索框为例࿰c;使用id加name两种属性组合定位。

Selenium自动化测试-3.元素定位(2)

运行之后࿰c;打开百度࿰c;输入小胖虎࿰c;id加name属性组合定位成功。

总结:节点元素无id或name属性时࿰c;可以用Xpath。觉得麻烦的话可以用开发者工具直接copy࿰c;copy的xpath定位不到的࿰c;再手写xpath。xpath是定位神器࿰c;多练习, 可以解决绝大部分定位问题。

下一篇我们将介绍第8种定位——css定位࿰c;语法简洁、定位速度更快࿰c;记得持续关注哦!

Selenium自动化测试-3.元素定位(2)

感谢每一个认真阅读我文章的人࿰c;看着粉丝一路的上涨和关注࿰c;礼尚往来总是要有的࿰c;然不是什么很值钱的东西࿰c;如果你用得到的话可以直接拿走:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

Selenium自动化测试-3.元素定位(2)

 

⑤ Python学习路线图(告别不入流的学习)

在我的QQ技术交流群里(技术交流和资源共享࿰c;广告进来腿给你打断)

可以自助拿走࿰c;群号953306497(备注“csdn111”)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

Selenium自动化测试-3.元素定位(2)

 

大佬总结

以上是大佬教程为你收集整理的Selenium自动化测试-3.元素定位(2)全部内容,希望文章能够帮你解决Selenium自动化测试-3.元素定位(2)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。