У меня есть некоторые веб-элементы, которые имеют тот же префикс для своего атрибута ID
. Я могу получить эти элементы сразу с get webelements
; Я хочу извлечь свой текстовый атрибут с помощью одной команды. Я написал эту строку:Как получить атрибут текста всех элементов сразу в Robot Framework?
${elList} = get webelements xpath=//*[starts-with(@id, '${formName}:${row}')]
${rowList} = evaluate [item.get_attribute('text') for item in ${elList}] selenium
который возвращает:
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)
Я не могу понять проблему здесь; BTW Я буду признателен за любое другое решение для моей проблемы.
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')}
.
Вы близки. Попробуйте: $ {rowList} = Оценить [item.text для элемента в $ elList]. Для пояснения см. Http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Evaluating%20expressions и http://seleniumhq.github.io/selenium/docs/api/py/webdriver_remote/selenium.webdriver. remote.webelement.html # selenium.webdriver.remote.webelement.WebElement.text – ombre42