Robotframework 处理远程和本地浏览器

Robotframework 处理远程和本地浏览器,robotframework,Robotframework,我有三个关键词,分别是RemoteFifox、RemoteChrome和LocalBrowsers 当我在Jenkins服务器上运行测试headless时,会使用远程关键字。 当我想远程运行脚本时,我讨厌不断地注释每个脚本。我想实现一个Run关键字和IF-ELSE 我现在有 *** Keywords *** I open browser [Arguments] ${BROWSER} Run Keyword If ${BROWSER} =='rFireFox' remoteF

我有三个关键词,分别是RemoteFifoxRemoteChromeLocalBrowsers

当我在Jenkins服务器上运行测试headless时,会使用远程关键字。 当我想远程运行脚本时,我讨厌不断地注释每个脚本。我想实现一个Run关键字和IF-ELSE

我现在有

*** Keywords ***
I open browser
    [Arguments]  ${BROWSER}
    Run Keyword If  ${BROWSER} =='rFireFox'  remoteFireFox
    ...  ELSE IF   ${BROWSER} =='rChrome'  remoteChrome
    ... ELESE  LocalBrowsers
然而,我不断地得到下面的错误

Evaluating expression 'rFireFox =='rFireFox'' failed: NameError: name 'rFireFox' is not defined nor importable as module

有什么建议吗?

您可能需要在比较的两端加上双引号

*** Test Cases ***
Test Case
    I open browser    rFireFox

    
*** Keywords ***
I open browser
    [Arguments]  ${BROWSER}
    Run Keyword If  "${BROWSER}" =="rFireFox"  remoteFireFox
    ...  ELSE IF   "${BROWSER}" =="rChrome"  remoteChrome
    ...  ELSE  LocalBrowsers

remoteFireFox
    Log To Console    remoteFireFox    

remoteChrome
    Log To Console    remoteChrome  
    
LocalBrowsers
    Log To Console    LocalBrowsers 

您可能需要在比较的两端加上双引号

*** Test Cases ***
Test Case
    I open browser    rFireFox

    
*** Keywords ***
I open browser
    [Arguments]  ${BROWSER}
    Run Keyword If  "${BROWSER}" =="rFireFox"  remoteFireFox
    ...  ELSE IF   "${BROWSER}" =="rChrome"  remoteChrome
    ...  ELSE  LocalBrowsers

remoteFireFox
    Log To Console    remoteFireFox    

remoteChrome
    Log To Console    remoteChrome  
    
LocalBrowsers
    Log To Console    LocalBrowsers 

Robot允许您通过省略大括号将Robot变量视为带有表达式的python变量。文档中的一节对此进行了描述(请参阅该节中的“使用变量”)

另一种选择是将变量设置为关键字本身,因此可以执行以下操作:

Run keyword  ${BROWSER}
。。。然后在命令行上将
${BROWSER}
定义为要运行的关键字:

robot --variable BROWSER:remoteFireFox
robot --variable BROWSER:remoteChrome
robot --variable BROWSER:LocalBrowsers

Robot允许您通过省略大括号将Robot变量视为带有表达式的python变量。文档中的一节对此进行了描述(请参阅该节中的“使用变量”)

另一种选择是将变量设置为关键字本身,因此可以执行以下操作:

Run keyword  ${BROWSER}
。。。然后在命令行上将
${BROWSER}
定义为要运行的关键字:

robot --variable BROWSER:remoteFireFox
robot --variable BROWSER:remoteChrome
robot --variable BROWSER:LocalBrowsers

奇怪的是,当它尝试执行If-Else部分时,我得到了错误:应该是0个参数,得到了2。。如果我翻转关键字,我仍然会得到相同的错误。奇怪的是,当它尝试执行If-Else部分时,我得到了错误:预期为0个参数,得到了2。。如果我翻动关键字,我仍然会得到同样的错误。