Robotframework基础篇(三):selenium2library拓展库

什么是selenium

Selenium 自动化测试工具,它主要是用于 Web 应用程序的自动化测试,但并不只局限于此,同时支持所有基于 web 的管理任务自动化。
Selenium 的特点:
1.开源,免费
2.多浏览器支持:FireFox、Chrome、IE、Opera
3.多平台支持:linux 、windows、MAC
4.多语言支持:java、Python、Ruby、php、C#、JavaScript
5.对 web 页面有良好的支持
6.简单(API 简单)、灵活(用开发语言驱动)
7.支持分布式测试用例执行

Selenium 是支持多种开发语言的,对于不同的语言来说都有其对应的库。
对 Robot Framework 框 架 的 Selenium 库 有 两 个 : SeleniumLibrary 和 Selenium2Library 。SeleniumLibrary 是基于 Selenium1.0 开发的,Selenium2Library 是基于 Selenium2.0 开发的。如果没有历史遗留问题,我们直接使用 Selenium2Library。

安装selenium2library

用pip下载,pip install robotframework-selenium2library。

浏览器和浏览器驱动版本

浏览器推荐chrome浏览器,浏览器驱动版本要匹配上,浏览器版本最好低点,推荐chrome5x版本.
chrome 的驱动为:chromedriver.exe 。
IE 的驱动为:IEDriverServer.exe
浏览器默认为空时启动 FireFox.exe。

selenium2libeary常用关键字

  1. 打开浏览器我们用open browser关键字
    在这里插入图片描述

  2. 关闭浏览器我们用close browser/browsers关键字
    在这里插入图片描述

  3. 浏览器窗口最大化我们用maximize browser window关键字
    在这里插入图片描述

  4. 浏览器前进我们用go to关键字,后退用go back关键字
    在这里插入图片描述

  5. 重新加载页面我们用reload page关键字

  6. 页面截图我们用capture page screenshot关键字
    在这里插入图片描述

  7. 元素定位,下面列出RF的元素定位方法
    在这里插入图片描述
    如何通过上述的方法去定位页面元素呢?举个例子,首先我们在百度首页中点击输入框。然后右击选择查看元素或者按F12按键。
    图一:
    在这里插入图片描述图二:
    在这里插入图片描述我们看到标蓝的这一行就是输入框的信息,有id,name。元素定位方法中有id我们优先选择id,因为页面元素的id是唯一的。接下来我们到RIDE中用关键字定位元素。
    在这里插入图片描述
    介绍个最简单的元素定位方法没学过都可以定位到元素:先点击元素,然后右击选择查看元素,右击标蓝的那一行,选择复制,再选择Xpath。粘贴出来就是用xpath方法定位到元素。
    在这里插入图片描述在这里插入图片描述

  8. 输入文本我们用input text关键字
    在这里插入图片描述

  9. 点击页面元素/按钮/图片等关键字
    点击页面元素 click element
    在这里插入图片描述
    双击页面元素 Double Click Element
    点击图片 Click Image
    点击链接 click link
    点击按钮 click button

  10. 模拟键盘按键我们用Press keys 关键字
    Press key关键字废弃不用后,开始使用Press keys关键字,用法也发生了一些变化。具体就不阐述。Keys既可以是字符,也可以是按键名。
    1.举一个向文本框输入字符的例子,输入Q+w+1
    在这里插入图片描述
    运行结果
    在这里插入图片描述
    2.再举一个PAGE_DOWN按键的例子
    在这里插入图片描述运行结果:
    在这里插入图片描述

  11. 显示等待我们wait until page contains element
    解释是直到定位的元素出现才会执行下一步,如果超时就报异常,可以自定义报错信息。有时候sleep很多秒定位的元素还是没找到,用显式等待一下子就找到了。所以推荐大家用显式等待。
    格式如下:
    wait until element is enabled |locator|timeout=None
    wait until page contains element | locator| timeout=None
    …(更多关键字按F5)
    接下来我们就看个失败报错的例子,自定义报错:
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

  12. 隐式等待我们用set selenium implicit wait关键字
    在一定时间内找到元素则马上运行,若超过设置的等待时间,则会报错。优点是隐式等待在整个driver周期只需要设置一次。缺点是会一直等待页面全部加载完成,也就是浏览器标签栏的小圈不再转才会执行下一步。
    set selenium implicit wait | timeout
    get selenium implicit wait

在这里插入图片描述运行结果:
在这里插入图片描述

  1. 进入frame或iframe中我们用select frame关键字,退出用unselect frame
    有时候元素有id,但是却定位不到,这时候我们就要考虑他是不是在一个iframe里面。如果是的话,我们需要先进入iframe里面,再去定位该元素。
    select frame | locator
    Unselect frame 回到最上层frame或iframe
    举个例子,我们在网页上登录QQ邮箱,登录界面的账号和密码文本框就是在一个frame。思路如下:
    先找到元素位置,然后看最下面的一行,往左点,找到frame在的地方。我们获取到iframe的id是login_frame,进入到iframe中,那么接下来输入账号密码就很好操作。
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  2. 验证页面是否包含相应结果,就不一一介绍,都可以看得懂。
    Page Should(Not)Contain Button
    Page Should(Not)Contain Checkbox
    Page Should(Not)Contain Element
    Page Should(Not)Contain Image
    Page Should (Not)Contain Link
    Page Should (Not)Contain List
    Page Should(Not)Contain Radio Button
    Page Should(Not)Contain Textfield

  3. 获取页面返回值我们用get text/value关键字
    get text是获取元素text属性,get value是获取元素的值
    get text | locator
    get value | locator

在这里插入图片描述

  1. 获取元素属性我们用get attribute关键字(适用于判断按钮是否被勾选)
    获取页面元素的属性,比如name,id,value,class。
    get attribute | locator | attribute
    示例:
    在这里插入图片描述在这里插入图片描述
    运行结果:
    在这里插入图片描述
    作者觉得比较实用的是判断按钮是否被选中,一般来说被选中的元素会有checked属性。返回值是True;未被选中的元素没有checked属性,返回值是None。我们还可以通过jquery进行判断。被勾选就是True,未勾选就是False.两种方法都是判断checked属性。
    在这里插入图片描述

  2. 下拉下拉框的相关操作
    Unselect From List By Index
    Unselect From List By Value
    Unselect From List By Label
    如果下拉框不是select标签,选项值而是在ul的li中,解决方法是使用js定位,有selenium基础可以自定义,先定位下拉框点击一下,然后定位ul,最后通过索引值定位到列表项,最后点击。代码给了,自己在seleniumlibrary里面封装。当然也有js方法,作者还是学,哈哈,羞愧,学完把代码贴出来。
    在这里插入图片描述
    好啦,先更新到这里,后面会不定期更新。加油,吉先生!

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值