Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

У каких элементов текст получается с помощью атрибута value?

python
webdriver
testng
Теги: #<Tag:0x00007f7b627e89e0> #<Tag:0x00007f7b627e88a0> #<Tag:0x00007f7b627e8760>

(hudrogen) #1

Добрый день!
Использую python+selenium
Имею web_element, мне надо получить отображаемый текст этого элеммента.
Стандартно делается text = web_element.text
но таким образом получить текст с элемента с тегом input и textarea не получится, нужно использовать
web_element.get_attribute("value")

С каких еще элементов текст полуяается при помощи атрибута value
Есть ли еще веб элементы, с которых текст получают при помощи другого атрибута?

UPD1
Для автотестов у меня есть один метод, который проверяет наличие текста в веб элементе. На вход метода подается xpath веб элемента и текст, наличие которого надо проверить. На вход может подаваться веб элемент любого типа: поле ввода, label, кнопка и т.д.
Дело в том что для разных видов веб элементов процедура получения отображаемого текста в этом элементе различаются.
Например для элементов с тегами ‘input’ и ‘textarea’ я не могу получить текст таким образом:
text = web_element.text
приходится получать текст так
text = web_element.get_attribute(“value”)

Мне нужно знать список всех тегов веб элементов, текст которых надо получать через атрибут value,

@step(ur'увидим в "{web}" значение {value}')
def we_see(context, web, value):
    xpath = context.mapping[context.current_feature][web]
    web_element = context.browser.find_element_by_xpath(xpath)
    attribute = web_element.tag_name
    if attribute == 'input' or attribute == 'textarea':
    if value != 'null':
        asserts.assert_in(value, web_element.get_attribute("value"))
    else:
        asserts.assert_in(value, web_element.text)

(Sergey QA) #2

Кликаешь по элементу с текстом правой кнопкой мыши и инспектируешь его с помощью браузерной панели разработчика. А из него уже вытягиваешь нужный атрибут, в котором будет текст.


(Vlad Ki) #3

Т.е. Вы рассчитываете увидеть в форме value?


(Vlad Ki) #4

Чаще всего это элементы формы.


(Sergey QA) #5

Не обязательно, в каком угодно аттрибуте, вот пример с этого замечательного сайта:
Тут некая текстовая информация заключена в атрибуте title, например.
<button tabindex="5" data-ember-action="1316" class="btn btn-primary create " title="Или нажмите Ctrl+Enter"><i class="fa fa-reply"></i>Ответить</button>

Не совсем понимаю вопрос, если честно.


(Qipzone) #6

в textarea нет атрибута value. В вашем случае это только input http://htmlbook.ru/html/textarea


(Qipzone) #7

title - это всплывающая подсказка при наведение на элемент, а не текст внутри элемента


(Sergey QA) #8

Это просто пример того, где может содержаться текст, если вы не заметили, то я написал “некая текстовая информация”, а не “текст элемента”.