如何在 Robot Framework 中一次获取所有元素的文本属性?
How to get all elements' text attribute at once in Robot Framework?
我有一些 Web 元素的 ID
属性具有相同的前缀。我可以使用 get webelements
; 一次获取所有这些元素;我想用一个命令提取他们的文本属性。我写了这一行:
${elList} = get webelements xpath=//*[starts-with(@id, '${formName}:${row}')]
${rowList} = evaluate [item.get_attribute('text') for item in ${elList}] selenium
哪个returns:
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)
我无法理解这里的问题;顺便说一句,对于我的问题的任何其他解决方案,我将不胜感激。
EDIT1: 我也试过下面的代码:
${elList} = get webelements xpath=//*[starts-with(@id, '${formName}:${row}')]
:FOR ${item} IN @{elList}
\ log to console ${item.get_attribute('text')}
但是控制台只显示None
; ${item.get_attribute('value')}
.
也是一样的
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}
我已经解决了这个问题;我找到 this 答案并使用 ${item.get_attribute('innerHTML')}
作为尝试。它工作得很好。
你也可以用这个。
@{elem} = Get WebElements css=._1vC4OE._2rQ-NK
:FOR ${item} IN @{elem}
\ log to console Item: ${item.text}
我有一些 Web 元素的 ID
属性具有相同的前缀。我可以使用 get webelements
; 一次获取所有这些元素;我想用一个命令提取他们的文本属性。我写了这一行:
${elList} = get webelements xpath=//*[starts-with(@id, '${formName}:${row}')]
${rowList} = evaluate [item.get_attribute('text') for item in ${elList}] selenium
哪个returns:
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)
我无法理解这里的问题;顺便说一句,对于我的问题的任何其他解决方案,我将不胜感激。
EDIT1: 我也试过下面的代码:
${elList} = get webelements xpath=//*[starts-with(@id, '${formName}:${row}')]
:FOR ${item} IN @{elList}
\ log to console ${item.get_attribute('text')}
但是控制台只显示None
; ${item.get_attribute('value')}
.
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}
我已经解决了这个问题;我找到 this 答案并使用 ${item.get_attribute('innerHTML')}
作为尝试。它工作得很好。
你也可以用这个。
@{elem} = Get WebElements css=._1vC4OE._2rQ-NK
:FOR ${item} IN @{elem}
\ log to console Item: ${item.text}