我正在使用机器人框架运行自动化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.
如何解决它。有谁可以告诉我一些解决方案。
答案 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
以解决冲突。
来自关键字文档:
库搜索顺序用于解决关键字时的冲突 测试数据中的名称与多个关键字匹配。第一个图书馆(或 选择包含关键字的资源,见下文) 使用关键字实现。如果找不到任何关键字 库(或资源),测试执行失败的方式与 搜索顺序未设置。
导入Selenium2Library
和AppiumLibrary
时,您可以指定失败时运行的命令。默认值为Capture page screenshot
,这是问题的根,因为有两个具有该名称的关键字。您可以明确告诉机器人使用哪一个。
例如:
*** Settings ***
| Library | Selenium2Library | run_on_failure=AppiumLibrary.CapturePageScreenshot
| Library | AppiumLibrary | run_on_failutre=AppiumLibrary.CapturePageScreenshot
如果您不想更改导入库的方式,每个都会提供一个名为Register keyword to run on failure的关键字,您可以在设置步骤中使用该关键字来注册完全限定的关键字名称。