Automation One By One - Robot Framework - User Keywords

Automation One By One - Robot Framework - Test Case这一章中已经简单介绍了keywords相关概念,我们知道keywords分为2大类,一类是Library keywords,另一类是userkeywords。对于Library keywords我们不在这边做详细的介绍了,本章主要介绍如何创建userkeywords.


1. userkeywords的语法(syntax)- 与test case的语法类似,唯一不同在于存放的位置不同,test case放在test case table中,keyword放在keywords table中

***keywords*** 
  userkeywords_name  [Arguments]

Examples

Example without arguments
***keywords*** 
  Open Login Page
    Open Browser  http://www.baidu.com
    Title Should Be  百度知道

Example with arguments
***keywords*** 
  Title Should Start With  [Arguments]  ${expected_value}
    ${title} =  Get Title
    Should Start With  ${title}  ${expected_value}
    

2. keywords table中可以加入settings命令
   为了与keywords的name区分,keywords table中的命令使用[settings]格式。
   可以使用的settings命令如下:

[Documentation]
Used for setting a user keyword documentation.
[Arguments]
Specifies user keyword arguments.
[Return]
Specifies user keyword return values.
[Timeout]
Sets the possible user keyword timeout. Timeoutsare discussedin a section of their own.


3. userkeywords中的arguments格式

4. userkeywords name中嵌入arguments.
  • 语法:在userkeyword名中嵌入argument后不能再使用[arguments]添加其它的参数了。
  • 在userkeyword名中的arguments依赖于调用userkeyword时传递的值,如下例子
百度高级搜索页面
*** Settings ***
Library         Selenium Library   15
Test Setup     Start Selenium Server
Test Teardown  Stop Selenium Server  

*** Testcases ***
TC1  [Documentation]  embedded arguments
  Open Browser    http://news.baidu.com/advanced_news.html
 Select 最近一年 from list
 Select 最近一周 from list 
 Select 最近一小时 from list
  comment 上述的值应该在下拉列表范围内,如果不在,系统会报错

*** Keywords ***
Select ${date} from list    
  Sleep  3s
  Select From List  name=mt   ${date}

  • 需要注意的事,如果传递的值是带有空格的,如 最近 一年, 在调用函数时必须用引号引起来,说明要传递的是一个参数,否则,系统会认为是2个值。
     Select "最近 一年" from list

5. 定义一个可以返回值的userkeywords - 实现这个功能,可以借助settings-[Return]命令实现

*** Keywords ***
Return Value keyword
  [Return]  pass


Return One Value     [Arguments]     ${arg}            
    Do Something     ${arg}            
    ${value} =     Get Some Value            
    [Return]     ${value}


6. 调用userkeywords

  从开发的角度讲,userkeywords及Library keywords相当于一个个封装好的函数,在test case中使用这些keywords时与调用函数的方法一样。

调用keywords
***Test Cases***
  Open Login Page
  Title Should Start  百度
Robot Framework 是一种基于关键字驱动测试框架的强大自动化测试工具,支持多种语言的集成和扩展功能。`Dialogs Library` 并不是 Robot Framework 的官方核心库之一,但它可以作为一个自定义第三方库用于处理系统弹窗、对话框等交互场景。 要在 Robot Framework 中添加并使用 `Dialogs Library` 或类似的功能模块,通常需要以下步骤: --- ### **如何安装 Dialogs 库** 如果该库是一个独立的 Python 包,则可以通过 pip 安装: ```bash pip install robotframework-dialogs ``` 如果没有直接可用的标准包名称,请查阅具体的文档或者手动创建所需的资源文件(比如通过 SeleniumLibrary 等其他工具间接实现)。 --- ### **在 Robot Framework 中引入 Dialogs 库** 假设已经成功下载了对应版本的支持包,在 `.robot` 文件里可以直接引用它作为外部依赖项的一部分。例如: ```plaintext *** Settings *** Library Dialogs *** Keywords *** *** Test Cases *** Example of Using Dialogs Input Text To Alert Hello World! # 这是一条示例命令,可能会依据实际需求有所变化 Get File Name From User C:\\temp temp.txt 可选提示信息 ``` 注意:上述仅为示意用途,并非所有环境都通用;某些操作可能还涉及额外配置如路径权限设定等等。 --- ### **常见应用场景** 1. **自动响应浏览器警告/确认窗口** - 当页面触发 JavaScript 弹出消息框时快速反馈结果; 2. **文件上传与下载管理** – 帮助完成特定目录下选取目标档案的动作序列; 3. **跨平台图形界面元素控制** (Windows GUI Automation 特别有用) --- #### § : 1. 如何验证某个第三方插件是否兼容当前使用的 RF 版本? 2. 使用 Selenium 和 Dialogs 结合能否覆盖更多复杂用户情景模拟 ? 3. 如果项目中遇到无法加载指定 libraries 的错误应该怎样排查解决 ?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值