Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.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 机器人框架中循环的退出_Python_Python 3.x_Selenium_Robotframework - Fatal编程技术网

Python 机器人框架中循环的退出

Python 机器人框架中循环的退出,python,python-3.x,selenium,robotframework,Python,Python 3.x,Selenium,Robotframework,使用Robot框架,我试图创建一个FOR循环,其中从列表中选择一个随机值。选择随机值后,打开该值的页面,然后我想验证该方可用的数据,等等。如果值匹配,则循环应该退出 目前,我可以选择一个随机值并转到该值页面,但由于FOR循环从列表中找到另一个值,脚本失败,因此无法执行进一步的操作 @{ORGANISATIONAL_NAME} JSK MARKETING KEDARNATH COMOTRADE PONDICHERRY SRI LAKSHMI View Basic Info of the P

使用Robot框架,我试图创建一个FOR循环,其中从列表中选择一个随机值。选择随机值后,打开该值的页面,然后我想验证该方可用的数据,等等。如果值匹配,则循环应该退出

目前,我可以选择一个随机值并转到该值页面,但由于FOR循环从列表中找到另一个值,脚本失败,因此无法执行进一步的操作

@{ORGANISATIONAL_NAME}  JSK MARKETING  KEDARNATH COMOTRADE  PONDICHERRY SRI LAKSHMI

View Basic Info of the Party
    ${value} =  Evaluate  random.choice($ORGANISATIONAL_NAME)  random
    input text  ${SEARCH_BAR}  ${value}
    log to console  \nvalue: ${value}
    click element  ${SEARCH_BUTTON}
    log  ${value}
    Run Keyword If  '${value}' == 'JSK MARKETING'  click element  ${JSK_MARKETING}
     ...  ELSE IF  '${value}' == 'KEDARNATH COMOTRADE'  click element  ${KEDARNATH_COMOTRADE}
     ...  ELSE IF  '${value}' == 'PONDICHERRY SRI LAKSHMI'  click element  ${PONDICHERRY_SHRI_LAKSHMI}
     ...  ELSE  log to console  condition didn't met
    FOR  ${value}  IN  @{ORGANISATIONAL_NAME}
        log to console  ${value}
        click element  ${BASIC_INFO}
        wait until page contains  Summary
        Exit For Loop If  '${value}' == 'JSK MARKETING'
        click element  ${BASIC_INFO}
        wait until page contains  Summary
        Exit For Loop If  '${value}' == 'KEDARNATH COMOTRADE'
        click element  ${BASIC_INFO}
        wait until page contains  Summary
        Exit For Loop If  '${value}' == 'PONDICHERRY SRI LAKSHMI'
    END

需要对从列表中选择的随机值执行验证。

您的问题是您首先选择了一个随机值。
@{ORGANISATIONAL_NAME}  JSK MARKETING  KEDARNATH COMOTRADE  PONDICHERRY SRI LAKSHMI

View Basic Info of the Party
    ${value} =  Evaluate  random.choice($ORGANISATIONAL_NAME)  random
    input text  ${SEARCH_BAR}  ${value}
    log to console  \nvalue: ${value}
    click element  ${SEARCH_BUTTON}
    log  ${value}
    Run Keyword If  '${value}' == 'JSK MARKETING'  click element  ${JSK_MARKETING}
     ...  ELSE IF  '${value}' == 'KEDARNATH COMOTRADE'  click element  ${KEDARNATH_COMOTRADE}
     ...  ELSE IF  '${value}' == 'PONDICHERRY SRI LAKSHMI'  click element  ${PONDICHERRY_SHRI_LAKSHMI}
     ...  ELSE  log to console  condition didn't met
    FOR  ${value}  IN  @{ORGANISATIONAL_NAME}
        log to console  ${value}
        click element  ${BASIC_INFO}
        wait until page contains  Summary
        Exit For Loop If  '${value}' == 'JSK MARKETING'
        click element  ${BASIC_INFO}
        wait until page contains  Summary
        Exit For Loop If  '${value}' == 'KEDARNATH COMOTRADE'
        click element  ${BASIC_INFO}
        wait until page contains  Summary
        Exit For Loop If  '${value}' == 'PONDICHERRY SRI LAKSHMI'
    END
然后按照创建列表的顺序迭代列表

for循环的原因是什么? 因为我不明白你在循环中想做什么

编辑:

如果只有这3个值​​你的名单上会有你可以这样做:

View Basic Info Of The Party
    ${value} =  Evaluate  random.choice($ORGANISATIONAL_NAME)  random
    Input Text  ${SEARCH_BAR}  ${value}
    Log To Console  \nvalue: ${value}
    Click Element  ${SEARCH_BUTTON}
    Log  ${value}
    Run Keyword If  '${value}' == 'JSK MARKETING'  Click Element  ${JSK_MARKETING}
    ...  ELSE IF    '${value}' == 'KEDARNATH COMOTRADE'  Click Element  ${KEDARNATH_COMOTRADE}
    ...  ELSE IF    '${value}' == 'PONDICHERRY SRI LAKSHMI'  Click Element  ${PONDICHERRY_SHRI_LAKSHMI}
    Log To Console  ${value}
    Click Element  ${BASIC_INFO}
    Wait Until Page Contains  Summary
如果你想拥有更多的价值观​​在列表中,如果您只想在这3种情况中的一种情况下执行操作,请尝试执行以下操作:

View Basic Info Of The Party
    ${value} =  Evaluate  random.choice($ORGANISATIONAL_NAME)  random
    Input Text  ${SEARCH_BAR}  ${value}
    Log To Console  \nvalue: ${value}
    Click Element  ${SEARCH_BUTTON}
    Log  ${value}
    Run Keyword If  '${value}' == 'JSK MARKETING'  Click Element  ${JSK_MARKETING}
    ...  ELSE IF    '${value}' == 'KEDARNATH COMOTRADE'  Click Element  ${KEDARNATH_COMOTRADE}
    ...  ELSE IF    '${value}' == 'PONDICHERRY SRI LAKSHMI'  Click Element  ${PONDICHERRY_SHRI_LAKSHMI}
    ...  ELSE  Log To Console  condition didn\'t met
    Run Keyword If  '${value}' == 'JSK MARKETING' or '${value}' == 'KEDARNATH COMOTRADE' or '${value}' == 'PONDICHERRY SRI LAKSHMI'     Run Keywords
    ...  Log To Console  ${value}   AND
    ...  Click Element  ${BASIC_INFO}   AND
    ...  Wait Until Page Contains  Summary

我希望这能有所帮助。

您得到的错误是什么?@WojtekT错误是,首先,它取的是一个值,比如PONDICHERRY SRI LAKSHMI,当FOR循环执行时,它取的是另一个值,比如JSK MARKETING。使用FOR循环的原因是,在选择了一个随机值后,我想对该特定方执行数据验证。整个场景是,我有一个巨大的不同政党的数据集,每个政党的数据也是不同的。现在我必须从该数据集中选择一个随机参与方并对其进行验证。我尝试了这两种代码,但现在在搜索参与方后直接失败,因为现在它跳到元素${BASIC_INFO}而不是首先单击参与方,即“${value}”=='KEDARNATH COMOTRADE'单击元素${KEDARNATH_COMOTRADE}。我想我知道你有什么问题。让我们关注代码2。最后3行包含开头的
,因此最后3行取决于检查结束时的关键字
运行关键字(第11行)。我想你没有把
放在开头,这就是为什么最后3行总是被执行的原因。它可以在日志中看到,因为最后3行应该出现在日志中的runkeywords键中,如下所示:重新格式化代码后,问题仍然存在。现在发生的事情是,在随机选择后,它没有点击聚会页面链接,浏览器关闭,结果是通过。[链接]()由于本地治里·斯里·拉克希米珠宝店与本地治里·斯里·拉克希米珠宝店不匹配,因此不符合任何条件。在这种情况下,代码是正确的