关键字“捕获页面屏幕截图”无法在失败时运行

时间:2015-09-24 07:33:15

标签: appium robotframework

我正在使用机器人框架运行自动化Android应用程序: 我导入的库是selenium2library和android库。       最初我使用goto url关键字启动了应用程序:  我把论据作为我的应用程序的url。  运行测试脚本后我得到了::

Keyword 'Capture Page Screenshot' could not be run on failure: 
Multiple keywords with name 'Capture Page Screenshot' found. Give 
the full name of the keyword you want to use:     
AppiumLibrary.Capture Page Screenshot     
Selenium2Library.Capture Page Screenshot.

如何解决它。有谁可以告诉我一些解决方案。

1 个答案:

答案 0 :(得分:3)

机器人告诉你有两个名为Capture Page Screenshot的关键字。一个由Selenium2Library定义,一个由AppiumLibrary定义。其中一个或两个也指示机器人在出现错误时运行Capture Page Screenshot。但是,因为有两个,机器人不知道它应该调用哪一个。

至少有几种解决方案。第一种是使用内置关键字Set library search order来指示机器人搜索关键字的顺序。第二个是告诉机器人具体运行哪个版本。解决方案也可能很简单,因为将两个库导入单个套件中。

设置搜索顺序

要设置搜索顺序,请在测试开始时添加类似的内容 - 也许在套件设置中:

*** Settings ***
| Suite Setup | Set Library Search Order | AppiumLibrary | Selenium2Library

指示机器人首先检查AppiumLibrary然后Selenium2Library以解决冲突。

来自关键字文档:

  

库搜索顺序用于解决关键字时的冲突   测试数据中的名称与多个关键字匹配。第一个图书馆(或   选择包含关键字的资源,见下文)   使用关键字实现。如果找不到任何关键字   库(或资源),测试执行失败的方式与   搜索顺序未设置。

设置显式关键字名称

导入Selenium2LibraryAppiumLibrary时,您可以指定失败时运行的命令。默认值为Capture page screenshot,这是问题的根,因为有两个具有该名称的关键字。您可以明确告诉机器人使用哪一个。

例如:

*** Settings ***
| Library | Selenium2Library | run_on_failure=AppiumLibrary.CapturePageScreenshot
| Library | AppiumLibrary | run_on_failutre=AppiumLibrary.CapturePageScreenshot

如果您不想更改导入库的方式,每个都会提供一个名为Register keyword to run on failure的关键字,您可以在设置步骤中使用该关键字来注册完全限定的关键字名称。