Часто в процессе автоматизации тестирования веб-приложений с использованием Selenium WebDriver возникает необходимость получить HTML-код определенного элемента на странице.
Возникает вопрос: как это сделать?
Для начала рассмотрим типичный пример. Представим, что у нас есть страница с определенным элементом, который мы хотим найти и получить его HTML-код.
from selenium import webdriver wd = webdriver.Firefox() elem = wd.find_element_by_css_selector('#my-id')
Мы можем легко получить HTML-код всей страницы с помощью метода page_source
:
html = wd.page_source
Но что делать, если нам нужен HTML-код конкретного элемента?
В Selenium WebDriver нет прямого метода для получения HTML-кода элемента, но это можно сделать с помощью Javascript. Существует Javascript-функция outerHTML
, которая возвращает HTML-код элемента, включая сам элемент.
html = wd.execute_script("return arguments[0].outerHTML;", elem)
При этом важно учесть, что для работы этого кода должен быть включен Javascript в браузере.
Таким образом, получение HTML-кода конкретного элемента в Selenium WebDriver возможно, но для этого придется использовать Javascript. Это может быть немного неудобно, но, к счастью, Python и WebDriver предоставляют достаточно простые и удобные инструменты для выполнения такого рода задач.
Добавить комментарий