не могу присвоить текст из html в переменную Selenium Python

Есть код страницы: Код страницы

br>

div class="collapse" id="collapse_1409943">_ /div>

"ДО1 №0017687 от 09.03.2020" == $0

br>

В нем есть текст "ДО1 №0017687 от 09.03.2020"

Но я так понимаю, он не является элементом, так как когда пытаюсь его выцепить такой командой

el = driver.find_element_by_xpath('/html/body/div[7]/table/tbody/tr/td[2]/text()[2]').text

print(el)

Пайтон пишет вот такую ошибку is: [object Text]. It should be an element.

Но никак не могу найти команды или решения, что бы этот текст присвоить своей переменной.


Ответы (2 шт):

Автор решения: gil9red

Ошибка возникает [object Text]. It should be an element. из-за того, что нужно возвращать элемент, т.е. тег, а по '/html/body/div[7]/table/tbody/tr/td[2]/text()[2]' вернется текст тега, поэтому решением может быть:

el = driver.find_element_by_xpath('/html/body/div[7]/table/tbody/tr/td[2]').text

Но можно пойти дальше и попробовать вытащить текст из блока (считаем что блок из скриншота в вопросе находится внутри того td[2]):

el = driver.find_element_by_xpath('/html/body/div[7]/table/tbody/tr/td[2]//div[@class="collapse"]').text
→ Ссылка
Автор решения: Дмитрий

Попробуйте так: el = driver.find_element_by_xpath("//div[@class='collapse']").text
Здесь("//div[@class='collapse']") мы указываем что относительно div с классом 'collapse' мы вытаскиваем текст.
Если вытащится еще какой-то текст, разбейте его на элементы и присвойте переменной те(по счету), который вам нужны:
el = el.split()[0:3]

→ Ссылка