RobotFramework自动化测试框架系列学习----(二)库与关键字

news2024/11/29 16:33:22

一、类库和标准库

在RIDE中,按F5可查看库和关键字

标准库 (RF自带的库,不需要额外安装)

Buitln 测试库
Collections 集合库
DateTime 时间库
Screenshot 截屏库

存放位置:Python37\Lib\site-packages\robot\libraries

扩展库(需要通过pip额外安装的库)

web自动化测试:SeleniumLibrary 或 Selenium2Library
安装:pip install robotframework-seleniumlibrary
接口自动化测试:RequestsLibrary
安装:pip install robotframework-requests
app 自动化测试:AppiumLibrary
安装:pip install robotframework-appniumlibrary

存放位置:(Python安装路径)\Lib\site-packages

二、关键字

在这里插入图片描述

部分介绍

1.定义变量        ${a}  Set Variable  100
2.打印信息        Log  ${a}
3.获得系统时间    ${time}  Get Time
4.字符串拼接,默认以空格拼接    ${str}  catenate  a  b  c
5.使用特定字符拼接(如用#拼接)  ${str}  catenate  SEPARATOR=#  a  b  c
6.创建列表,得到     
${a} = ['a', 'b', 'c']
${list}  Create List  a  b  c
Log  ${list}    # 和python一样的列表格式

7.另一种列表
@{list}  Create List  a  b  c     # 适合做循环
得到@{a} = [ a | b | c ]
需要用Log Many打印
Log Many  @{list}
打印出 a  b  c  三个单独的值

8.字典关键字,得到${dict} = {'name': '张三', 'age': '24'}
${dict}  Create Dictionary  name=张三  age=24

9.直接执行python的方法,modules相当于导包
${rand}  Evaluate  random.randint(1,100)  modules=random
${time}  Evaluate  time.time()  modules=time

10.可以使用这种方法获取字典的值
${value}    Evaluate    ${dict}.values()

11.执行py文件的方法
Import Library  py文件路径
${x}  Evaluate  int(10)
${y}  Evaluate  int(20)
${result}  sum  ${x}  ${y}    # sum是py文件中的方法,实现加法运算
Log  ${result}

12.流程控制if
Run Keyword If  ${score}<60  Log  不及格
...  ELSE IF  ${score<80}  Log  一般
...  ELSE  Log  优秀

13.for循环写法1
FOR  ${a}  IN  test  python  java
Log  ${a}
END

14.for循环写法2
@{list}  Create List  test  python  java
FOR  ${a}  IN  @{list}
Log  ${a}
END

15.for循环写法3
FOR  ${a}  IN  IN RANGE  1  11     # 相当于Python的 for a in range(1,11)
Log  ${a}
Run Keyword If  ${a}==6  Exit for Loop     # 退出循环
END

16.截图,需导入Screenshot
Take Screenshot

三、常用关键字

3.1打开浏览器
Open Browser URL地址 chrome
3.2设置隐式等待
Set Browser Implicit Wait 3
3.3窗口最大化
Maximize Browser Window
3.4指定浏览器的尺寸
Set Window Size 600 800
3.5获得浏览器的宽度和高度
${width} ${height} Get Window Size
3.6回退
Go Back
3.7前进
Go To url地址
3.8刷新
Reload Page
3.9获取标题
${title} Get Title
3.10获得地址
${location} Get Location
3.11关闭浏览器
Close Browser

四、其他关键字

4.1操作元素的关键字

Open Browser    http://www.baidu.com    chrome        #打开浏览器
Maximize Browser Window        #最大化窗口
Set Browser Implicit Wait    5        #隐式等待
Input Text    id=kw    测试    #输入文本
Clear Element Text    id=kw    #清空文本
${text1}    Get Text    xpath=//a[@href="http://news.baidu.com"]    #获取文本
${text2}    Get Element Attribute    xpath=//a[@href="http://news.baidu.com"]    text    #获取文本
${shuxing}    Get Element Attribute    xpath=//a[@href="http://news.baidu.com"]    class    #获取元素class属性
Input Text    xpath=//input[@id="kw"]    鸽子    #输入文本
Click Element    css=#su    #点击元素
#下拉框选择
Select From List By Index  定位到下拉框  下标    #通过索引选择下拉选项,索引从0开始
Select From List By Label  定位到下拉框  文本    #通过文本定位下拉选项
Select From List By Value  定位到下拉框  Value属性值        #通过Value属性值定位到下拉选项

4.2.断言的关键字

系统断言
Should Be Empty  ${a}    #判断是否为空
Should Be Equal  A  a    #判断相等,区分大小写
Should Be Equal  A  a  ignore_case=True    #判断相等,忽略大小写
Should Be True    #判断是否为True
Should Contain  ceshi  es  ignore_case=True        #是否包含
Should Start With  ceshi  ce    #是否以*开头
Should End With  ceshi  i    #是否以*结尾
Length Should Be  ceshi  5    #判断长度

selenium断言
Page Should Contain  新闻        #页面是否包含文本
Page Should Contain Element  id=kw    #页面是否包含元素

4.3.元素等待的关键字

Set Browser Implicit Wait  5    #隐式等待,针对当前浏览器
Set Selenium Implicit Wait  5    #隐式等待,针对所有浏览器
Wait Until Element Contains  link=新闻  新闻  10    #等待元素包含指定的文本
Wait Until Element Enable  link=新闻  新闻  10        #等待元素可用
Wait Until Element Visible  link=新闻  新闻  10        #等待元素可见
Wait Until Page Contains  新闻  3        #等待页面包含指定文本
Wait Until Page Contains Element  id=kw  3        #等待页面包含指定元素

4.4.Frame切换

frameset框架集,frame框架,iframe子框架
当要操作的元素在其他frame中时,需要切换到对应的frame中才能进行定位和操作。frameset不用理会

#进入框架
Select Frame  name=menu-frame
#跳出框架
Unselect Frame
#跳出框架后可以进入其他框架

4.5.弹出框操作

alert 只有一个确定按钮
confirm 有确定和取消按钮
prompt 有确定、取消还可以输入文本

1、Alert Should Be Present 
这个关键字不仅仅验证是否存在包含响应arg的弹出框,同时如果存在就执行关闭操作
2、Get Alert Message
用于获取获取警告信息,通常我们会把获取到的文本传递给一个变量,然后打印结果进行查看
3、Confirm Action关闭确认框并返回确认框信息
默认点击确定按钮,如果操作取消按钮,需要在确认框弹出之前预定于“ Choose Cancel On Next Confirm action 再用Confirm Action
4、Input Text Into Prompt文本提示框输入关键字
Input Text Into Prompt  [ text ]
用于Alert 弹出文本输入框的输入,配合Confirm Action警告框实现整个文本弹出框的操作
5、Handle Alert
Handle Alert [ action=ACCEPT | timeout=None ] 默认就是点弹出框的确定
Handle Alert  action=DISMISS  点取消

4.6.切换窗口

Select Window  new    #切换到新的窗口
Select Window  main    #切换回初始窗口

@{handles}    List Windows    #获取所有窗口句柄的列表
Select Window  @{handles}[-1]    #通过句柄选择窗口
Select Window  ${title}        #通过title选择窗口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/975376.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

点成案例丨比浊仪助力牙周炎诱发因素研究

牙周炎概述 牙周炎&#xff08;Periodontitis&#xff09;是一种炎症性疾病&#xff0c;其主要特征为牙周袋的形成及袋壁的炎症、牙槽骨吸收而导致牙龈与牙齿分离、牙齿逐渐松动或掉落等。牙周炎主要是由积聚在牙龈及其附近牙面、齿颈缘的牙菌斑内细菌所分泌的毒素令牙周组织发…

Linux命令200例:xargs标准输入的数据作为参数传递使用

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌。CSDN专家博主&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0…

DeepFaceLab和DeepFaceLive下载地址

DeepFaceLab和DeepFaceLive下载地址 项目地址&#xff1a;https://github.com/iperov/DeepFaceLab 下载地址&#xff1a;https://disk.yandex.ru/d/7i5XTKIKVg5UUg 需要科学上网 还有一个其他版本的磁力 magnet:?xturn:btih:e7ffdcb4ada863de9504f2a741f924dcd56ab84a&…

智安网络|加强软件供应链安全保障:共同抵御威胁的关键路径

在当今数字化时代&#xff0c;软件供应链安全成为了一个备受关注的话题。各行各业都依赖于软件产品和服务来支持其业务运营。然而&#xff0c;随着供应链的不断扩大和复杂化&#xff0c;软件供应链安全问题也日益突出。那么应该如何解决&#xff1f; 首先&#xff0c;软件供应…

开了抖店后就可以直播带货了吗?想在抖音带货的,建议认真看完!

我是王路飞。 关于抖店和直播带货的关系&#xff0c;其实很多人经常搞不清楚。 不然的话&#xff0c;也不会有这个问题的出现了&#xff1a;开了抖店后就可以直播带货了吗&#xff1f; 在我看来&#xff0c;这个问题很简单&#xff0c;但在不了解抖音电商和直播带货其中门道…

postgres源码解析55 Brin Index--2(brinbuild流程)

上一篇讲解了brin index的基本概念以及页布局postgres源码解析54 Brin Index–1&#xff0c;后续会从源码角度对索引的构建、维护等方面进行深入讲解。 1 关键数据结构 2 brinbuild执行流程图 3 brinbuild 函数详解 1 首先调用brin_matepage_init初始化brin meta元数据页&…

【Day_29慢就是快】代码随想录-二叉树-二叉树的所有路径

给定一个二叉树&#xff0c;返回所有从根节点到叶子节点的路径。 思路 求根节点到叶子节点的路径&#xff0c;需要前序遍历&#xff0c;方便让父节点指向孩子节点&#xff0c;找到对应的路径。 使用递归方法做前序遍历&#xff0c;递归与回溯是一家的。 递归 1. 递归参数及返…

C++ Opencv视频检测

使用OpenCV进行视频检测的一般步骤如下&#xff1a;导入OpenCV库和视频文件。 对每一个视频帧进行对象检测。可以使用诸如Haar特征分类器、Cascade分类器或深度学习模型等技术进行对象检测。 #include <opencv2/imgcodecs.hpp> #include <opencv2/highgui.hpp> …

OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装

目录 一、OpenLdap介绍 二、PhpLdapAdmin介绍 三、使用docker-compose进行安装 1. docker-compose.yml 2. grafana配置文件 3. provisioning 四、安装openldap、phpldapadmin、grafana 五、配置OpenLDAP 1. 登陆PhpLdapAdmin web管理 2. 需要注意的细节 内容介绍参考…

Linux系统的安装

文章目录 1 Linux介绍1.1 Linux是什么1.2 Linux的特点1.3 Linux的应用1.4 Linux的发行版本1.5 Linux的Shell 2 Linux安装2.1 安装方式2.2 什么是VMware2.3 VMware主要功能2.4 什么是CentOS2.5 VMware与CentOS与Linux的关系2.6 VMware安装CentOS的步骤 1 Linux介绍 1.1 Linux是…

【前沿资讯】2023年最新遥感类SCIE/ESCI期刊影响因子汇总

6月28日&#xff0c;Clarivate发布了最新的JCR报告&#xff0c;公布了期刊的最新SCIE影响因子&#xff0c;并首次发布了ESCI期刊的影响因子。其中归入遥感“remote sensing”类的SCIE期刊有33本&#xff0c;归入ESCI期刊的有25本&#xff0c;以下分别为它们的相关指标。 表1 遥…

【LeetCode75】第四十六题 除法求值

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们多个二维数组形式的除法等式&#xff0c;在二维数组里有两个字符串&#xff0c;表示同名的未知数&#xff0c;另一个数组中对应…

SpringBoot 集成 Canal 实现监听MySQL表数据

SpringBoot 集成 Canal 准备工作什么是 CanalCanal 在 Spring Boot 中的作用和优势准备工作安装和配置 MySQL 数据库 安装Canal项目集成导入依赖添加配置信息创建监听类测试 准备工作 什么是 Canal Canal 是阿里巴巴开源的基于数据库增量日志解析的数据同步和订阅组件&#x…

写得了代码,焊得了板!嵌入式开发工程师必修之代码管理方案(下)

目录 极狐GitLab嵌入式开发场景解决方案 3.1 高可用部署与灾备 3.2 组织管理 3.3 分支策略 3.4 分支保护 3.5 推送规则 3.6 代码评审 3.7 数据保护 3.8 其他相关 本文来自 武让 极狐GitLab 高级解决方案架构师 &#x1f4a1; 前两篇文章&#xff0c;作者介绍了嵌入式开…

接口自动化测试系列-接入测试平台

测试平台目录 测试平台自建源码 后台核心代码 def add_api(kwags):"""插入api数据"""try:join_info CaseApi(namekwags.get("name"), httpTypekwags.get("httpType"),headerskwags.get("headers") if kwags.ge…

Rhinoceros(犀牛)使用技巧:有关曲线和曲面的分析

Rhinoceros&#xff08;犀牛&#xff09; for Mac破解版是一款功能强大的高级建模软件&#xff0c;可以创建、编辑、分析、提供、渲染、动画与转换 NURBS 线条、曲面、实体与多边形网格。不受精度、复杂、阶数或是尺寸的限制&#xff0c;在本篇文章中&#xff0c;为您介绍的是有…

AI与科学知识共生的桥梁,在未来AI会不会取代大学呢?

原创 | 文 BFT机器人 2023年&#xff0c;随着GPT在各行各业的爆发&#xff0c;“是否能将GPT用于科研场景”成为了一个水到渠成的问题。当ChatGPT超越大部分人类在高考、SAT、美国法考、医考等领域取得令人咋舌的高分后&#xff0c;人们对于GPT驱动科研的兴趣愈发高涨。截止本…

layui表格高度

layui表格的高度设置时使用 height:‘full’ 高度就是表格每个页面的总高度。也可以直接写数值&#xff0c;但是这是定高。 也可以使用 height&#xff1a;“full-数值”&#xff0c;比如 height:full-80 那么就会在表格占据剩余div的时候底部留100px。相当于margin-bottom:10…

【AI测试】python文字图像识别tesseract

[AI测试]python文字图像识别tesseract github官网&#xff1a;https://github.com/tesseract-ocr/tesseract python版本&#xff1a;https://github.com/madmaze/pytesseract OCR&#xff0c;即Optical Character Recognition&#xff0c;光学字符识别&#xff0c;是指通过扫…

骨传导耳机用久了伤耳朵吗?骨传导耳机有什么优势

骨传导耳机用久了不伤耳朵&#xff0c;相对于传统的入耳式耳机来说&#xff0c;对耳朵的压力和损伤较小。由于骨传导技术不直接通过耳道传递声音&#xff0c;而是通过振动将声音传送到内耳&#xff0c;因此相比其他类型的耳机&#xff0c;它在减少听力损伤的风险方面具有优势。…