Web自动化测试-使用RF做Web端自动化测试

上篇文章讲了 RF 自动化框架,今天来讲讲 RF 操作网页的常规操作。

既然是网页,我们就得掌握点 html 元素定位的知识。

元素定位

1、通过 id 定位,id属性是唯一的。

2、name 定位:元素的名称,name 属性值在当前页面可以不唯一。

3、class 定位:元素的类名。

4、tag 定位:页面 html 文档下的各种标签。

5、link 定位:专门用来定位文本链接。

6、partial link 定位:是对 link 定位的一种补充,当链接上的文本内容比较长的时候,可以取文本的一部分进行定位,当然这部分可以唯一地标识这个链接

7、XPath 定位:有多种定位策略。

1)绝对路径定位:对于没有 id,name、classname 不好定位的,这也是我最常用的,因为可以通过 chrome 右键选择 Copy Xpath。

2)利用元素属性定位:

这里是用的 id,也可以用元素其他能够唯一标识的属性,不局限于id、name、class 这些;* 代表的是标签名,不指定时就可以用 * 代替。

8、CSS 定位(薄弱,用的很少,但很强大,比 xpath 简洁灵活):使用选择器来为页面元素绑定属性,可以灵活地选择控件的任意属性,可以通过 chrome 右键选择 Copy selector。

1)通过class属性定位:点号(”.”)表示通过class属性定位。

2)通过id属性定位:(”#”)表示通过id定位元素。

3)通过其他属性定位:(”[]”),中括号里的属性可以唯一标识这个元素就可以;属性的值可以加引号,也可以不加。

4)组合定位,如果以上单个不唯一的话,就需要进行组合,形成唯一的定位。

如何启动浏览器

上篇文章的 demo 中也讲过,操作浏览器用的是 selenium2Library 第三方库,那这个库是怎么启动浏览器的呢?它是通过找到浏览器的驱动来启动浏览器,比如我用的是 chrome 谷歌浏览器,我需要把 chromedriver 下载解压后放在 Python 的安装根目录下。

驱动这块有个坑需要注意下,驱动必须要和浏览器版本是有映射关系的,如果版本不是和映射关系匹配的,会出现启动不了浏览器的情况。Chrome 和 ChromeDriver 映射关系对应如下,先查看你的 Chrome 浏览器版本,然后根据映射关系去下载相应版本的 ChromeDriver。所有版本的下载链接点击下方阅读原文可直接下载,可选择 Linux、mac、win,下载后解压,放在 Python 安装根目录下。(左右滑动查看全部)

实战举例

上面的准备工作就位后,我们直接开始实战,我们还是以 pk 哥的博客为例,我们用 RF 框架来实现打开博客,输入登录账号和密码,进行登录操作,当然,这个博客做了登录二维码验证功能,这个以后详细分析。

代码如下:

代码分析

1、导入第三方库 Selenium2Library

Selenium2Library 库封装了大量的浏览器操作的方法,导入后可直接调用。

2、启动浏览器并输入网址

用 Selenium2Library 库的 Open Browser 方法启动浏览器,后面的参数是要打开的网址和启动的浏览器类型。

3、点击登录按钮

首先我们要用到上面讲到的页面元素定位的方法,我们打开页面,用 F12 快捷键或者右键-检查打开调试页面,Ctrl + Shift + C 快捷键快速定位具体元素,查看元素具体属性,发现页面元素有 id,有 id 属性我们就用 id 来定位,因为 id 是唯一的,直接定位。

点击元素用的是 Selenium2Library 库的 Click Element 方法。

4、输入登录账号和密码(左右滑动查看全部)

在输入框输入文本,我们用的是 Selenium2Library 库的 Input text 方法,我们用同样的方式定位到输入框的属性,获取到它的 id 属性,例子中的登录账号和密码是虚构的,请忽略。

5、点击登录按钮

这一步和上面一样,获取 id,点击元素。

这个例子结合上面讲到的元素定位方法,我们总结下定位元素方法的首选是 id 定位,没有 id 再用 xpath 定位,最后再考虑用其他的定位方式。

Selenium2Library 常见操作

最后我们来看下第三方库 Selenium2Library 的常见操作有哪些。(左右滑动查看全部)

补充:对于启动浏览器,RF 是支持大部分常用浏览器的,要想通过不同的浏览打开 URL 地址,一定要安装浏览器相对应的驱动。如 chrome 的驱动:chromedriver.exe 等。浏览器默认为空时启动 FireFox。下图是支持的浏览器和对应的关键字,Open Browser 方法后输入对应的关键字就可以通过驱动启动相应的浏览器。

以上就是 Selenium2Library 库操作浏览器常见的封装方法,掌握了这些,就可以熟练的操作浏览器了,使其自动化帮你完成一些重复的工作了,比如测试时用到的自动化测试。还可以每天自动化的帮你在特定网站签到或者抽奖,当然这只是半自动,还是需要我们手动执行程序,后面会教大家全自动操作,尽情期待。

今天的 Python WEB 自动化就分享到这里,下篇文章给大家分享下怎么自动化操作移动端的 APP,希望对你有帮助,祝进步!

 

文章为pk哥原创,我在我的公众号: Python 知识圈 上会分享更多心得体会,你也可以关注。

***版权申明:本文为 Python知识圈 pyzhishiquan.com 原创,没有Python知识圈书面授权,请勿以任何形式转载,摘编,复制或镜像。***

为您推荐

发表评论

电子邮件地址不会被公开。