RF-SeleniumLibrary项目实战
准备UI自动化测试的环境
- 通过pip安装扩展库:pip install robotframework-seleniumlibrary
- 下载谷歌浏览器
- 下载谷歌浏览器的驱动(注:谷歌浏览器的驱动必须和谷歌浏览器兼容,ps:谷歌浏览器 驱动下载地址
步骤一:先查看自己的谷歌浏览器
步骤二:下载版本最接近的对应驱动
注意:百度了一下win10(64)可以下载32位的driver
步骤三:将下载的驱动放在对应的python373目录下,例如:将chromderiver.exe放在c:/python373下 - 在RF的测试套件里面导入SeleniumLibrary
- 遇到的问题总结
导入Selenium2Library库后缺少一些关键字怎么回事
RobotFrameWork的testsuit中导入selenium2library,有很多关键字都没导入进去?
python3+robotframework3.1.2配置下,selenium2library库中仍然没有open browser关键字 解决方案
常用关键字
- 强制等待sleep:强制让浏览器等待X秒
- 隐式等待Set Browser Implicit Wait
:只设置1次,针对所有的webdriver对象(全局等待),程序会一直等待整个页面加载完成,才会执行下一步操作
selenium 三种休眠方式
元素定位
前置条件: 元素必须统一,以下六种为常见的
- id
- name
- link_text(链接文本):rf中是link
- partial_link_text(部分链接文本):rf中是partial link
- xpath
1、通过绝对路径定位:这种方式几乎不用
2、通过相对路径定位:找到唯一的标签,例如://form/span/input
3、通过元素属性定位:例如//input[@autocomplete=属性1 and class=classname]
4、通过部分属性定位:例如//input[start-with(@autocomplete=属性的开头)],//input[contains(@autocomplete=属性的开头)](start-with和contains部分写的是函数)
5、通过文本定位:例如//a[text()=“新闻”]
- css:
1、通过绝对路径定位:这种方式几乎不用
2、通过相对ID或者Class定位:#ID .class
3、通过元素属性定位:例如input[@autocomplete=属性1][class=classname]
4、通过部分属性定位:例如
开头:input[autocomplete^=属性的开头)],
结束:input[autocomplete$=属性的结束)]
包含:input[autocomplete*=属性的子字符串)]
5、通过子元素定位:例如div#s–top-left(注释:这是id) a:nth-child(3)
- class_name
- tag_name