【问题标题】:issue with for loops in robot framework机器人框架中的for循环问题
【发布时间】:2021-07-17 10:20:42
【问题描述】:

我是 Robot Framework 的新手,我正在尝试实现一个 for 循环,我想在其中循环并存储所有标签的所有文本值。

但我只能获取一个标签的文本。

这是我的代码:

*** Settings ***
Library    SeleniumLibrary


*** Variables ***
${url}  http://www.practiceselenium.com/practice-form.html


*** Test Cases ***
ExtractLinks
    alllinks

    close browser


*** Keywords ***
allLinks
    open browser    ${url}

    ${allLinksCount}    get element count    xpath://a
    log to console  ${allLinksCount}


    FOR     ${i}     IN      1  ${allLinksCount}

    ${linkText}     get text    xpath:(//a)[${i}]

    log to console    ${linkText}

    END

这是输出:

==============================================================================
getAllLinks
==============================================================================
ExtractLinks                                                          10
More

ExtractLinks                                                          | PASS |
------------------------------------------------------------------------------
getAllLinks                                                           | PASS |
1 test, 1 passed, 0 failed
==============================================================================

所以页面上有10个a标签,但只有一个显示,“更多”在控制台的输出中。

是否可以将所有链接文本都收集到列表中?

【问题讨论】:

  • 像这样使用你的 for 循环 FOR ${i} IN RANGE ${allLinksCount+1}
  • 谢谢,我忘了写整个 IN RANGE 关键字 :) 我确实尝试在 ${allLinksCount+1} 中使用 +1,但随后出现错误“未找到变量定义”只是 ${allLinksCount} 我得到 8 个结果而不是 10 个??

标签: python-3.x robotframework


【解决方案1】:

FOR ${i} IN 1 ${allLinksCount}相当于python代码for i in (1, 10)。换句话说,它将恰好循环两次。

如果您想遍历1${allLinksCount} 之间的数字范围,您应该使用IN RANGE

因为 xpath 从 1 而不是 0 开始计数,所以您需要稍微调整数字:

FOR     ${i}     IN RANGE     1  ${allLinksCount}+1
    ${linkText}     get text    xpath:(//a)[${i}]
    log to console   ${linkText}
END

-或-

FOR     ${i}     IN RANGE     ${allLinksCount}
    ${linkText}     get text    xpath:(//a)[${i+1}]
    log to console   ${linkText}
END

【讨论】:

    猜你喜欢
    • 2020-12-29
    • 2016-11-18
    • 2017-04-20
    • 2017-07-02
    • 2016-03-15
    • 2020-02-19
    • 2018-07-28
    • 2018-08-09
    • 2020-11-15
    相关资源
    最近更新 更多