robotframework基础入门:(3):找不到关键字的对应方法
这篇文章记录一下robotframe执行中出现No keyword with name的对应方法
现象
错误提示信息:No keyword with name ‘Title Should Be’ found.
sh-4.2# robot test.robot
==============================================================================
Test
==============================================================================
Check something :: Check the page title | FAIL |
No keyword with name 'Title Should Be' found.
------------------------------------------------------------------------------
Test | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================
Output: /tmp/output.xml
Log: /tmp/log.html
Report: /tmp/report.html
sh-4.2#
原因&确认方式
代码不用再贴了,因为这篇文章主要用来说明出现类似低级问题的确认内容和方法。
可能原因1:没有导入对应的库
robot的测试脚本中如果缺少关键字对应的库,自然会出错,唯一的一个例外就是BuildIn内置库可以不用写。因为此关键字在Selenium2Library中,所以需要检查脚本的Settings中是否有如下的内容
Library Selenium2Library
可能原因2:写错关键字名称
这看起来虽然很像一个笑话,但是请仔细检查一下,如果你却是将Library导入了,但是又认不出来,看看是不是多个空格什么的,仔细,仔细,仔细。
上面两种原因有可能有各种方式的变形,导致以为没有问题实际却有问题,那么长的英文关键字写错一点根本不好认,汉字的优势在这里显现的淋漓尽致,可以考虑使用汉字来写关键字可能会更加简练和有效率。
可能原因3:其他原因
从这个原因开始进入宿命论的角度,但是往往会存在,可能安装了多个版本,之间相互冲突,或者环境的问题,依赖的问题,网络的问题等。
确认方式
以下以Title Should Be关键字找不到为例,介绍一下如何进行问题定位。
首先确认Title Should Be关键字在那个库中,会写robot的测试脚本,自然知道这是robot使用selenium库中所提供的关键字,用于确认打开的页面的title与输入的参数是否一致的关键字,相关的库名为Selenium2Library
确认pip的package
robot本身是使用python开发的,robotframework本身就是使用pip进行安装的,其他相关的package也是一样。
因为Selenium2Library是以robotframework-selenium2library为载体的,首先看看此package是否进行了安装。
~ # pip show robotframework-selenium2library
Name: robotframework-selenium2library
Version: 3.0.0
Summary: Web testing library for Robot Framework
Home-page: https://github.com/robotframework/Selenium2Library
Author: Tatu Aalto
Author-email: aalto.tatu@gmail.com
License: Apache License 2.0
Location: /usr/lib/python2.7/site-packages
Requires: robotframework-seleniumlibrary
Required-by:
~ #
确认安装的库
python的库使用pip安装后,如果当前系统是python2.7的话,会被安装在如下目录:
/usr/lib/python2.7/site-packages/xxxx,比如
/usr/lib/python2.7/site-packages # ls
README robotframework-3.0.4-py2.7.egg-info
Selenium2Library robotframework_selenium2library-3.0.0.dist-info
SeleniumLibrary robotframework_seleniumlibrary-3.1.1.dist-info
easy_install.py selenium
easy_install.pyc selenium-3.14.0.dist-info
pip setuptools
pip-18.0.dist-info setuptools-33.1.1.post20171031-py2.7.egg-info
pkg_resources urllib3
robot urllib3-1.23.dist-info
/usr/lib/python2.7/site-packages #
确认此目录:
- 是否存在
- 名字是否与robot脚本中的引用名一致
经过确认Selenium2Library确实存在,并且Selenium2Library的写法也与robot脚本一致。
确认是否能够进行import
在robot运行的OS上使用python确认是否能够正常import相关的库,比如此例中应该能够想如下这样正常import而不出error
~ # python
Python 2.7.15 (default, Aug 22 2018, 13:24:18)
[GCC 6.4.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Selenium2Library
>>>
这样基本上就能说明环境本身没有问题,剩下的就多多检查一下robot的脚本或者robot的版本即可。
robotframework基础入门:(3):找不到关键字的对应方法相关推荐
- robotframework基础入门:(2):常见问题对应方法
使用robot进行基于关键字的测试,经常会遇到一些问题,这里列出最常见的几个问题,因为这四个问题是在使用官方demo代码时候遇到频度最多的,也是在新手入门时可能花时间最多的地方之一. 问题1:缺少ro ...
- 零基础入门学习Python(21):魔法方法(1)构造和析构
零基础入门学习Python(21):魔法方法(1)构造和析构 从这节开始,我们介绍下Python的魔法方法:魔法方法总是被双下划线包围. 之前有提到过初始化的魔法方法__init__(),它返回Non ...
- 零基础入门学Python(十二)—— 魔法方法(下)
零基础入门学Python系列内容的学习目录→\rightarrow→零基础入门学Python系列内容汇总. 魔法方法(下) 1. 构造和析构 2. 算术运算 3. 简单定制 4. 属性访问 5. 描述 ...
- 零基础入门学Python(十二)—— 魔法方法(上)
零基础入门学Python系列内容的学习目录→\rightarrow→零基础入门学Python系列内容汇总. 魔法方法(上) 1. 构造和析构 1.1 _ _ init _ _(self[, ...]) ...
- 〖Python零基础入门篇㊹〗- 自定义异常 [raise 关键字]
万叶集
- Python基础入门:正则re.sub使用自定义替换方法
在使用正则替换时,有时候需要将匹配的结果做对应处理,便可以使用自定义替换方法. re.sub的用法为: re.sub('匹配表达式',替换字符或替换函数,替换次数,其他参数) 例如,加入将字符串中的$ ...
- 零基础入门数据挖掘-Task3 特征工程
Datawhale 零基础入门数据挖掘-Task3 特征工程 前言 内容介绍 数据清洗 缺失值 异常值 箱型图 3∂原则 Box-Cox 变换 特征缩放 特征编码 特征工程 特征提取 特征选择 特征构 ...
- Python零基础入门(一)——Python基础关键字和语法[学习笔记]
Python零基础入门(一)--Python基础关键字和语法 目录 1. Hello World! 2. 字符串操作 3. 简单数学计算 4. if elif else 5. 循环 基础类型 pyth ...
- 软件测试培训两个月靠谱吗 基础入门,但找工作难
近些年,软件测试在互联网IT行业可是非常的吃香,但由于软件测试在我国发展的时间并不长,所以大家如果想要学习软件测试那么最好的方法就是通过培训,因此不少人就想知道,零基础学习软件测试需要多久,软件测试只 ...
最新文章
- 执行git命令时提示秘钥权限太开放‘Permissions 0644 for ‘/Users/liuml/.ssh/id_rsa_tz‘ are too open.’
- 包+类导入+静态导入+类放入包中+包作用域
- 【2015年第4期】基于电力运营大数据分析实现节能减排
- linux eclipse安装、新建并运行java程序
- 剑指 Offer II 024. 反转链表
- 关于Myeclipse10的激活
- sublime_text_2 注册
- linux复制 cp -rf 会覆盖已经存在的文件吗_Linux笔记之目录管理命令2
- 浅谈line-height 1
- 魔方栈源码-网站在线玩魔方源码-云魔方
- 数独超难题目_超难数独基本解题法
- 虚拟麦克风音频输入_Audio Precision 全新声学/音频分析软件可减少测试时间
- PHP进销存源码 ERP多仓库管理系统源码 手机端+小程序版进销存 全开源可二开 uniapp
- 题目96:把一张一元的钞票换成一分、两分、和五分的硬币,每种硬币至少一枚。问有哪几种换法?
- ajax 皇马,历史上最伟大11支球队 西班牙国家队在列 皇马两次入选
- IT运维面试问题总结
- Design Compiler工具学习笔记(7)
- 基于AM5728 DSP JTAG连接调试方法
- 搜集网络上比较好的中文语料库
- xml的三种解析方式
热门文章
- revit出图建模【尺寸定位标注】功能
- 获取的字段值是空值或者为null,而你自己的需求就是想要获取的字段为一个 * 默认的值
- 怎么找回xmind意外关机的文件_Xmind 导图保存丢失怎么找回?
- Linux 启动时间优化实战,2.41 秒启动应用!
- lm3s811 学习笔记(一)/【安装驱动/烧写程序】
- js 将阿拉伯数字翻译成中文的大写数字
- mysql查最高薪水,使用子查询查找MySQL Employee表的最高和第二最高薪水?
- 【图神经网络】图神经网络(GNN)学习笔记:基于GNN的图表示学习
- mysql 规则引擎_为什么使用规则引擎?
- MySQL入门学习之——MySQL Cluster初体验