Вывод элемента Selenium Python
Есть сайт с тестами, после ответа на вопрос появляется ответ и я пытаюсь его выделить и записать в переменную, но все осложняется тем, что ответ находится в span
'''
<div class="tooltip-incorrect-answer-content">
<ul class="">
<li class="checked">
<span class="item-text">Нет, неправильно</span>
</li>
<li class="not-checked">
<span class="item-text">Да, правильно</span>
</li>
</ul>
</div>
'''
Мне нужно вытащить данные span из class="checked", но при попытке не выдает вообще ничего, никакого текста. Результаты поиска есть, но текст из него не извлекается
'''
ans_list = driver.find_elements_by_class_name('checked')
print(ans_list)
print('ans-0')
print(ans_list[0].text)
print('ans-1')
print(ans_list[2].text)
print('end')
'''
Вывод в консоль
'''
[<selenium.webdriver.remote.webelement.WebElement (session="6ccdaff6cb28ba21de6086ce8b5c6ae1", element="a569d2e2-91b8-4836-89cb-084011543801")>, <selenium.webdriver.remote.webelement.WebElement (session="6ccdaff6cb28ba21de6086ce8b5c6ae1", element="66e61596-a873-4866-9964-b893da7d25e6")>]
ans-0
ans-1
end
'''
Мне нужно найти решение, которое позволит после нахождения элемента с классом tooltip-incorrect-answer-content найти по следующему классу checked вытащить весь текст из элемента на уровень ниже, который находится в span
То есть, как в идеале я представляю:
'''
example = driver.find_element_by_class_name("tooltip-incorrect-answer-content")
output = example.find_element_by_class_name('checked')
print (output.text)
>>Нет, неправильно
'''
Ответы (2 шт):
Все решилось благодаря .get_attribute("textContent"), но при этом .text() не работает Чтобы все работало находим span элемент или xpath выше него и применяем .get_attribute("textContent")
ans = []
for el in driver.find_elements_by_xpath("//div[@class='tooltip-incorrect-answer-content']"):
ans.append(el.get_attribute("textContent"))
Большое спасибо за ответ - мне реально именно это помогло получить результат, спасибо! Вариант получения текста из конкретного тэга из множества тэгов, не используя цикл и список для хранения.
transcription_word = browser.find_element(By.XPATH, "//div[@aria-hidden='true' and @data-location='1']/child::div[1]")
print(transcription_word.get_attribute('textContent')) # ПОЛУЧЕНИЕ ТЕКСТА ИЗ ТЭГА SPAN
transcription = transcription_word.get_attribute('textContent')