【问题标题】:How can I get multiple elements and print in Robot Framework- SeleniumLibrary?如何在 Robot Framework-SeleniumLibrary 中获取多个元素并打印?
【发布时间】:2020-05-17 20:30:21
【问题描述】:
${get_t}=    Get Text    //h6[@class='MuiTypography-root MuiTypography-subtitle2']
Log    ${get_t}
${get_t1}=    Get Element Count    xpath://h6[@class='MuiTypography-root MuiTypography-subtitle2']
Log    ${get_t1}
${get_t3}=    Get WebElements    xpath://h6[@class='MuiTypography-root MuiTypography-subtitle2']
Log    ${get_t3}

当我得到 Count 时,它会显示计数,但是当我使用 Get WebElements 打印它时,它不会打印文本。如果我给 Get Text 它会单独打印第一个文本。

Xpath

【问题讨论】:

    标签: python selenium selenium-webdriver robotframework robotframework-ide


    【解决方案1】:

    您想要实现什么 - 获取/打印每个元素的文本?因为Get Webelements 就像它的名字所说的那样——返回一个匹配元素的列表——硒元素对象。 有了这个,如果你想打印每个成员的文本,只需遍历列表并在每个成员上调用 Get Text

    FOR    ${el}    IN    @{get_t3}
        ${txt}=    Get Text    ${el}
        Log    ${txt}
    END
    

    【讨论】:

    • 首先感谢。我想获取 xpath 的所有元素并打印它。使用您的代码,我尝试这样做并且“@{get_t3}”这是xpath rite? .当我尝试它仍然打印第一个值: FOR ${el} IN xpath://h6[@class='MuiTypography-root MuiTypography-subtitle2'] \ ${txt}= Get Text ${el} \ Log ${ txt}
    • 其实不是,@{get_t3} 是一个列表对象,而不是 xpath。这是这个调用的结果——${get_t3}= Get WebElements xpath://h6[@class='MuiTypography... ,循环遍历它的每个元素——例如每个循环都使用不同的元素,直到遍历所有元素。您在评论中所做的是迭代单个字符串 - 因此只能从页面中获取单个文本。
    • 我们在迭代打印的时候需要从web element转换成字符串吗?
    • Web 元素就是这样 - 对页面 DOM 中对象的 selenium 引用。换句话说,它是一个指向元素的指针——diva 或另一个元素。你可以用它做各种事情——单击、更改它或获取一个属性——比如它的文本。因此,有了这个 web 元素,调用 Get Text 会返回它包含的文本。
    猜你喜欢
    • 2021-03-21
    • 2016-09-30
    • 2021-04-22
    • 2021-03-27
    • 2021-06-26
    • 1970-01-01
    • 2018-12-03
    • 2017-02-08
    • 2020-10-17
    相关资源
    最近更新 更多