не могу присвоить текст из 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 шт):
Ошибка возникает [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]
