Python + Selenium —— 网页元素定位!

发布时间:2024年01月19日

元素定位是 WebDriver 很重要的部分,特别对于自动化测试来说。

要想操作元素,首先必须要找到元素。

我们做自动化测试,就是需要通过模拟手工对元素的操作来实现自动化。脚本无法做到指哪打哪,不能像手工操作那样鼠标移过去点一下就行,毕竟代码没有自我辨别能力。

开发者工具

开发者工具是浏览器自带的网页调试工具,其中最好用的要数谷歌浏览器(Chrome)和火狐浏览器(Firefox)。一般通过 F12 快捷键就可以打开。通过此工具可以查看网页元素来寻找可以定位的方法。

首先,我们打开百度首页(http://www.baidu.com),在这个页面上有搜索的输入框、有搜索按钮、以及图片和各种链接等。

接下来,通过开发者工具来查看网页元素。

快捷键F12(如果你的笔记本电脑有?Fn?键,需要注意可能是?Fn + F12),打开后如下图:

  1. 左上角的箭头按钮,用来查看元素,

  2. 点击该按钮后,想查看哪个元素就点哪个元素;

  3. 当你点击想看的元素后,会自动在下方页面结构中选中该元素;

  4. 在下方的元素结构中可以看到你选择的元素,可以观察其标签名、属性值等

  5. 在底部使用 CSS 选择器的层级表示方式显示的当前选择元素的层级

我们通过上图可以看到,页面上得元素都是由一行行的HTML代码组成,它们之间是有层级组织起来的,每个元素有不同的标签名和属性值。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

HTML 简介

HTML 称指的是超文本标记语言 (Hyper?Text?Markup?Language),使用标记标签来描述网页内容。

通常,我们把包括?尖括号、标签名、属性、文本?构成一个最基本的页面元素element


WebDriver 就是通过元素的标签名或各种属性值来查找元素。

除此之外,HTML代码有如下特征:

  1. 由标签对构成

	<html></html>
	<body></body>
	<div></div>

html、div 以及上面提到的 a ,就是标签名?tag name

  1. 标签有各种属性

<div id="wrapper" style="display: block;">
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">

属性有 id,name,class,href 等。
3. 标签对之间有文本数据

<label class="checkbox"><input type="checkbox" name="autologin"> 三日内自动登陆</label>
<a href="http://news.baidu.com" name="tj_trnews" class="mnav">新闻</a>

在两个标签对之间的文字,就是这个标签对应的文本。

思考一下,第一个例子中“三日内自动登陆”属于哪个标签的文本?

  1. 元素有层级关系

<div>
     <form>
           <input />
     </form>
</div>

input 为 form 元素的子元素。div 是 input 元素的 祖先元素。

了解了?开发者工具?和?HTML 基础?,接下来就可以通过 Selenium进行元素定位了。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

文章来源:https://blog.csdn.net/m0_58026506/article/details/135701014
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。