这篇文章记录一下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):找不到关键字的对应方法相关推荐

  1. robotframework基础入门:(2):常见问题对应方法

    使用robot进行基于关键字的测试,经常会遇到一些问题,这里列出最常见的几个问题,因为这四个问题是在使用官方demo代码时候遇到频度最多的,也是在新手入门时可能花时间最多的地方之一. 问题1:缺少ro ...

  2. 零基础入门学习Python(21):魔法方法(1)构造和析构

    零基础入门学习Python(21):魔法方法(1)构造和析构 从这节开始,我们介绍下Python的魔法方法:魔法方法总是被双下划线包围. 之前有提到过初始化的魔法方法__init__(),它返回Non ...

  3. 零基础入门学Python(十二)—— 魔法方法(下)

    零基础入门学Python系列内容的学习目录→\rightarrow→零基础入门学Python系列内容汇总. 魔法方法(下) 1. 构造和析构 2. 算术运算 3. 简单定制 4. 属性访问 5. 描述 ...

  4. 零基础入门学Python(十二)—— 魔法方法(上)

    零基础入门学Python系列内容的学习目录→\rightarrow→零基础入门学Python系列内容汇总. 魔法方法(上) 1. 构造和析构 1.1 _ _ init _ _(self[, ...]) ...

  5. 〖Python零基础入门篇㊹〗- 自定义异常 [raise 关键字]

    万叶集

  6. Python基础入门:正则re.sub使用自定义替换方法

    在使用正则替换时,有时候需要将匹配的结果做对应处理,便可以使用自定义替换方法. re.sub的用法为: re.sub('匹配表达式',替换字符或替换函数,替换次数,其他参数) 例如,加入将字符串中的$ ...

  7. 零基础入门数据挖掘-Task3 特征工程

    Datawhale 零基础入门数据挖掘-Task3 特征工程 前言 内容介绍 数据清洗 缺失值 异常值 箱型图 3∂原则 Box-Cox 变换 特征缩放 特征编码 特征工程 特征提取 特征选择 特征构 ...

  8. Python零基础入门(一)——Python基础关键字和语法[学习笔记]

    Python零基础入门(一)--Python基础关键字和语法 目录 1. Hello World! 2. 字符串操作 3. 简单数学计算 4. if elif else 5. 循环 基础类型 pyth ...

  9. 软件测试培训两个月靠谱吗 基础入门,但找工作难

    近些年,软件测试在互联网IT行业可是非常的吃香,但由于软件测试在我国发展的时间并不长,所以大家如果想要学习软件测试那么最好的方法就是通过培训,因此不少人就想知道,零基础学习软件测试需要多久,软件测试只 ...

最新文章

  1. 执行git命令时提示秘钥权限太开放‘Permissions 0644 for ‘/Users/liuml/.ssh/id_rsa_tz‘ are too open.’
  2. 包+类导入+静态导入+类放入包中+包作用域
  3. 【2015年第4期】基于电力运营大数据分析实现节能减排
  4. linux eclipse安装、新建并运行java程序
  5. 剑指 Offer II 024. 反转链表
  6. 关于Myeclipse10的激活
  7. sublime_text_2 注册
  8. linux复制 cp -rf 会覆盖已经存在的文件吗_Linux笔记之目录管理命令2
  9. 浅谈line-height 1
  10. 魔方栈源码-网站在线玩魔方源码-云魔方
  11. 数独超难题目_超难数独基本解题法
  12. 虚拟麦克风音频输入_Audio Precision 全新声学/音频分析软件可减少测试时间
  13. PHP进销存源码 ERP多仓库管理系统源码 手机端+小程序版进销存 全开源可二开 uniapp
  14. 题目96:把一张一元的钞票换成一分、两分、和五分的硬币,每种硬币至少一枚。问有哪几种换法?
  15. ajax 皇马,历史上最伟大11支球队 西班牙国家队在列 皇马两次入选
  16. IT运维面试问题总结
  17. Design Compiler工具学习笔记(7)
  18. 基于AM5728 DSP JTAG连接调试方法
  19. 搜集网络上比较好的中文语料库
  20. xml的三种解析方式

热门文章

  1. revit出图建模【尺寸定位标注】功能
  2. 获取的字段值是空值或者为null,而你自己的需求就是想要获取的字段为一个 * 默认的值
  3. 怎么找回xmind意外关机的文件_Xmind 导图保存丢失怎么找回?
  4. Linux 启动时间优化实战,2.41 秒启动应用!
  5. lm3s811 学习笔记(一)/【安装驱动/烧写程序】
  6. js 将阿拉伯数字翻译成中文的大写数字
  7. mysql查最高薪水,使用子查询查找MySQL Employee表的最高和第二最高薪水?
  8. 【图神经网络】图神经网络(GNN)学习笔记:基于GNN的图表示学习
  9. mysql 规则引擎_为什么使用规则引擎?
  10. MySQL入门学习之——MySQL Cluster初体验