Я не знаю, делает ли селен это из коробки, но мне удалось найти этот обходной путь
element_html = f"<{element.tag_name}>{element.get_attribute('innerHTML')}</{element.tag_name}>"
, вы можете заменить innerHTML
на innerTEXT
, если хотите получитьтолько текст, например
<li>Hi <span> man </span> </li>
Получение innerHTML вернет все, что находится внутри, но innerTEXT не будет, попробуйте и посмотрите.
Теперь создайте ваш Soup
объект
soup = BeautifulSoup(element_html)
print(soup.WHATEVER)
используя вышеописанную технику, просто создайте метод parseElement(webElement)
и используйте его всякий раз, когда вы хотите проанализировать элемент.
Кстати, я использую только lxml, и когда я забыл набрать его, скрипт не работал