Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从python类调用方法到robot类_Python_Robotframework - Fatal编程技术网

如何从python类调用方法到robot类

如何从python类调用方法到robot类,python,robotframework,Python,Robotframework,我在python文件中有一个方法,它返回一个值lilkeURL。 我想在robot框架中调用它,通过附加环境来启动测试用例。 下面是我使用的代码 python和robot文件代码。请让我知道我哪里做错了。 我正在尝试从python文件调用方法,该文件将url返回到robot框架类中 Environment.py class TestUrl: def getBaseUrl(self, env): if env == 'int': domain = 'example.c

我在python文件中有一个方法,它返回一个值lilkeURL。 我想在robot框架中调用它,通过附加环境来启动测试用例。 下面是我使用的代码

python和robot文件代码。请让我知道我哪里做错了。 我正在尝试从python文件调用方法,该文件将url返回到robot框架类中

Environment.py

class TestUrl:
  def getBaseUrl(self, env):
    if env == 'int':
        domain = 'example.com/'
        return domain


  def getFullUrlForEclaimsHome(self, env, partner):
    x = self.getBaseUrl(env)
    url = 'https://' + partner + x
    print url
    return 'https://' + partner + x

test.robot
*** Settings ***
Variables    ../../CommonTestClass/Environments.py

*** Variables ***
${browser}  chrome
${env}  int
${partner}  example
${example URL}  = call method  getFullUrlForEclaimsHome('${env}','${partner}')


*** Keywords ***
Launch the browser 
    sleep  2s
    Open Browser  ${example URL}  ${browser}
    Maximize Browser Window

文件名和类名(根据我的经验)应该匹配,因此,如果文件名为“Environments.py”,那么您的类应该称为“Environments”,因为一旦在robot框架中导入它,您将直接调用方法“getBaseUrl”或“GetFullUrlForeclaimHome”

另外,您的类定义中缺少()

class TestUrl():
例如:

我的Python文件名为:Tree.py

from anytree import Node, RenderTree

class Tree ():
    def generate_tree (self,db_server,db_table,db_username, db_password):
        DO_SOMETHING

    def retrieve_tree_info (self,db_server,db_table,db_username, db_password, tree_ID):
        DO_SOMETHING
        return (SOMETHING)
我的机器人框架文件:

*** Settings ***
Library           YOUR_LIBRARY
Resource          YOUR_RESOURCE
Library           ../External Library/Tree.py #PATH TO YOUR Tree.py FILE

   #NOTE: If you use some IDLE (I'm using RED) it give you suggestion about the method name, in my example the IDLE call it in a bit different way than it was called in the python file
*** Variables ***
YOUR_VARIABLE

*** Test Cases ***
Create tree
    DO_SOMETHING
    ${tree}=    Retrieve Tree Info    ${db_server}    ${db_name}    ${db_user}    ${db_password}    ${tree_ID}
    DO_SOMETHING

Verify Locations tree
    DO_SOMETHING
    ${tree}=    Retrieve Tree Info    ${db_server}    ${db_name}    ${db_user}    ${db_password}
    DO_SOMETHING

您有一个名为
Environment.py
(singlular)的文件和一个尝试使用名为
Environments.py
(复数)的文件的robot测试。可能还有其他问题,但这肯定是一个问题。如果类名和模块名匹配,则不必在库导入中指定前者,没错-。顺便说一句,类定义中的括号只有在子类化时才需要:)哦,我不知道括号,所以为了避免错误,我一直在放:S tk作为提示;)@Carlo1585r您能举个例子说明我如何在robot类中调用“GetFullUrlForeclaimHome”并将其设置为variable@Mahantesh答案中添加了示例