【问题标题】:Selenium2library import for keyword access in robot framework用于机器人框架中关键字访问的 Selenium2library 导入
【发布时间】:2019-01-28 02:17:09
【问题描述】:

请注意,尝试是编写 python 脚本而不是机器人文件

我有两个文件


api.py

​​>
import requests
from robot.libraries.BuiltIn import BuiltIn
from robot.api import logger
from robot.running.model import Keyword

bi = BuiltIn()

class APIRequests:
    ROBOT_LIBRARY_SCOPE = 'TEST CASE'
    def something():
      return "some string/value"

在同一个文件夹中,我有另一个文件,我编写机器人文件

login.robot

*** Settings ***
Library         BuiltIn
Library         api.py
*** Test Cases ***
Valid Weathercheck:
    ${abc} = something 
    Log to console ${abc}

当我从命令控制台执行时 机器人登录.robot 我收到一条错误消息,提示“未找到名称为“某物”的关键字。”

查询2

当我们想使用一些存在于 python 中的现有 Web 驱动程序模块时,我无法找到有关如何将它们链接/导入为现成关键字的所需文档

【问题讨论】:

  • 这是为了让脚本独立运行,还是在编写关键字库?
  • 这个答案是否为您提供了您需要知道的内容? stackoverflow.com/a/23704655/7432
  • 非常感谢 Bryan,与此同时,我一直在浏览您对标签的回复。让我花点时间感谢您提供的强大社区支持。
  • 让我重新表述查询
  • 请将您的问题限制在一个主题上。对于Query2,看看这是否回答了您的问题:stackoverflow.com/a/23704655/7432

标签: python robotframework


【解决方案1】:

Robot 不会自动创建您的类的实例,除非类名与文件名相同。在您的情况下,您有一个名为 api.py 的文件,但类名是 APIRequests。您要么需要将文件名更改为APIRequests.py,将类名更改为api,要么将关键字导入为api.APIRequests

来自robot framework user guide

Python 类总是在一个模块中。如果实现库的类名与模块名相同,Robot Framework 允许在导入库时删除类名。例如,MyLib.py 文件中的 MyLib 类可以用作名称为 MyLib 的库。

【讨论】:

  • 这实际上是一个错字,为此道歉 - apirequests 是类的名称。我发现日志中有一个我忽略的不同错误,具有类名的文件 apirequest 也作为 apirequests 在同一文件夹/目录中可用,但我确实看到类似“导入测试库 'apirequests' 失败: ImportError: 没有名为 apirequests 的模块"
  • stackoverflow.com/questions/32832629/… - 谢谢,得到了两个查询的答案和响应
猜你喜欢
  • 2013-11-08
  • 1970-01-01
  • 2016-04-28
  • 2015-09-28
  • 2018-06-27
  • 2012-03-26
  • 2020-11-06
  • 2015-10-14
  • 2019-06-11
相关资源
最近更新 更多