如何在Robot Framework中一次获取所有元素的文本属性?

时间:2016-09-07 08:59:20

标签: selenium-webdriver robotframework selenium2library

我有一些网络元素,它们的x属性具有相同的前缀。我可以使用ID一次性获取这些元素;我想用一个命令提取他们的text属性。我写过这一行:

get webelements

返回:

${elList} =     get webelements     xpath=//*[starts-with(@id, '${formName}:${row}')]
${rowList} =    evaluate            [item.get_attribute('text') for item in ${elList}]   selenium

我无法理解这里的问题;顺便说一下,我会感谢我的问题。

EDIT1:我也试过以下代码:

Evaluating expression '[item.get_attribute('text') for item in [<selenium.webdriver.remote.webelement.WebElement object at 0x7f7b6c5f09d0>, <selenium.webdriver.remote.webelement.WebElement object at 0x7f7b6c5f0990>]]' failed: SyntaxError: invalid syntax (<string>, line 1)

但控制台只显示${elList} = get webelements xpath=//*[starts-with(@id, '${formName}:${row}')] :FOR ${item} IN @{elList} \ log to console ${item.get_attribute('text')} ;它与None相同。

3 个答案:

答案 0 :(得分:2)

我已经解决了这个问题;我找到this回答,并尝试使用${item.get_attribute('innerHTML')}。它工作得很好。

答案 1 :(得分:0)

text是实际属性还是仅包含文字?如果它是一个属性,那么您可以尝试以下方法。

${count}=  Get Matching Xpath Count  //*[starts-with(@id, '${formName}:${row}')]
${rowList}=  Create List
:FOR  ${i}  IN RANGE  ${count}+1
\  ${text}=  Get Element Attribute  xpath=(//*[starts-with(@id, '${formName}:${row}')])[${i}]@text
\  Append To List  ${rowList}  ${text}

答案 2 :(得分:0)

你也可以使用它。

@{elem} =   Get WebElements     css=._1vC4OE._2rQ-NK

:FOR  ${item}  IN  @{elem}
\   log to console  Item: ${item.text}