【问题标题】:RobotFramework - Calling a function from python libraryRobotFramework - 从 python 库调用函数
【发布时间】:2018-07-08 07:21:37
【问题描述】:

我试图在登录时通过 Python 中的函数生成一个随机名称。问题是它不将其视为函数,而是将其视为纯文本,尽管我已导入库并明确调用它。这是文件 Generators.py 中的 Python 函数:

import random

letters = [chr(ord('a')+i) for i in range(26)]

def generate_name():
    name = ""
    for i in range(9):
        name = name + random.choice(letters)
    return "Testing_Mark[" + name + "]"

这是机器人文件:

*** Settings ***
Library     Generators.py
Library     Selenium2Library

*** Variables ***
${User}                     Generators.Generate Name
${Password}                 1234
*** Test Cases ***
Organisation Test
    Open Browser    http://mywebsite.com/login     googlechrome
    Log In
    [Teardown]  Close Browser

*** Keywords ***
Log In
    Wait Until Page Contains    Log in
    Input Text          //input[@name="name"]        ${User}
    Input Password      //input[@name="password"]     ${Password}
    Click Button        //button[@type="submit"]
    Wait Until Element Is Visible   //span[@class="alert-description"]
    Sleep   3

我做错了什么?我知道 Robot 应该将上述函数识别为关键字,但仍然无法弄清楚为什么不是。两个文件都在同一个文件夹中。

【问题讨论】:

  • 我能问一下你为什么要创建自己的,当有一个很好的 FakerLibrary 可以为你做这件事时,还有更多?
  • 我不知道有这样的图书馆。我是机器人的新手,但谢谢你的建议,我可能需要这个:)
  • FakerLibrary Documentation返回的值可以设置你的特定语言环境;即,将其设置为 NL,您会得到荷兰人的名字、街道名称、社会安全号码等。当设置为 DE 时,您会得到相同的结果,但之后是德语。

标签: python selenium robotframework


【解决方案1】:

变量表只按原样赋值,变量表中不执行关键字。

引用Robot Framework User Guide:

它们的(变量表)主要缺点是值总是字符串并且它们 无法动态创建。如果其中任何一个有问题, 可以改用变量文件。

所以你的${User} 现在是Generators.Generate Name。作为字符串。移动

${User}                     Generators.Generate Name

进入测试用例。

*** Test Cases ***

Organisation Test
    ${User}                     Generators.Generate Name
    Open Browser    http://mywebsite.com/login     googlechrome
    Log In
    [Teardown]  Close Browser

【讨论】:

  • 我也试过这个,我得到“组织测试 | 失败 | 没有找到名称为 'Generators.Generate Name' 的关键字。”
  • 对不起,我很愚蠢。原来我正在修改 Generators.py 文件的副本,这就是它无法识别此关键字的原因。谢谢,工作就像一个魅力:)
猜你喜欢
  • 2020-05-21
  • 1970-01-01
  • 2021-02-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 2021-03-22
  • 2013-08-30
  • 1970-01-01
相关资源
最近更新 更多