У меня есть некоторые веб-элементы, которые имеют такой же префикс для атрибута ID
. Я могу получить все эти элементы сразу с помощью get webelements
; Я хочу извлечь их текстовый атрибут с помощью одной команды. Я написал эту строку:
${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)
Я не могу понять здесь проблему; Кстати, я буду признателен за любое другое решение моей проблемы.
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')}
.
3 ответа
Я решил это; Я нашел этот ответ и использовал ${item.get_attribute('innerHTML')}
в качестве попытки. Это сработало очень хорошо.
Является ли 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}
Вы также можете использовать это.
@{elem} = Get WebElements css=._1vC4OE._2rQ-NK
:FOR ${item} IN @{elem}
\ log to console Item: ${item.text}
Похожие вопросы
Связанные вопросы
Новые вопросы
selenium-webdriver
Selenium WebDriver предоставляет API WebDriver для управления браузерами на разных языках программирования («языковые привязки»). При использовании этого тега также добавьте тег для языка программирования, который вы используете.