Как получить код Inspect Element с помощью Selenium WebDriver

Я работаю в селене с браузером Firefox.

Код HTML, показанный в Просмотр исходного кода (CTRL + U), отличается от кода HTML, который я вижу при проверке элементов в Firefox.

Когда я запускаю driver.getPageSource(), я получаю только коды View source (CTRL + U).

Есть ли способ получить доступ к Проверке кода элемента вместо Просмотр исходного кода?


person user2782522    schedule 10.10.2014    source источник
comment
возможный дубликат Получить HTML-код WebElement в Selenium WebDriver (Python)   -  person alecxe    schedule 10.10.2014


Ответы (2)


Думаю, ответ на ваш вопрос есть здесь.

HTML-код View Source - это то, что отправляет сервер. Я думаю об этом как о времени компиляции html или как о начальном состоянии DOM.

HTML-элемент Inspect Element мог быть обновлен с помощью ответов ajax или javascript, поэтому он не обязательно будет таким же. Я думаю об этом как о времени выполнения html или о текущем состоянии DOM.

Метод GetAttribute () запрашивает текущее состояние элемента DOM. Вы можете напрямую вернуть конкретное значение атрибута html

webElement.GetAttribute("class")

или получить всю строку html.

webElement.GetAttribute("innerHTML")
person John O.    schedule 10.10.2014
comment
Что, если webElement генерируется динамически и в DOM (проверяет элемент), но не в источнике? Как добраться до самого элемента? - person user1002119; 11.10.2014
comment
Это не должно иметь значения. Метод GetAttribute () работает со всем, что есть в DOM. HTML - это язык, описывающий DOM, поэтому текущий HTML сообщает вам, что такое текущая DOM. Я отредактировал ответ, чтобы отразить это. - person John O.; 16.10.2014
comment
У меня такая же проблема, страница отображается только на простом. расширенный код я вижу только в инспекторе. Кому-нибудь удалось решить эту проблему? - person BREI; 20.05.2018

Существует фундаментальное различие между разметкой, отображаемой с помощью View Source, то есть с использованием ctrl + U, и разметкой, отображаемой с помощью Inspector, то есть с использованием < kbd> ctrl + shift + I.

Оба метода представляют собой две разные функции браузера, которые позволяют пользователям просматривать HTML-код веб-страницы. Однако основное отличие заключается в том, что Просмотр исходного кода показывает HTML-код, доставленный с веб-сервера (сервера приложений) в браузер. Где as, Проверить элемент - это Инструмент разработчика, например Chrome DevTools, чтобы просмотреть состояние DOM Tree после того, как браузер применил исправление ошибок и после того, как какой-либо Javascript обработал DOM. Некоторые из этих мероприятий могут включать:

  • Исправление ошибок HTML браузером
  • Нормализация HTML браузером
  • Манипуляция DOM с помощью Javascript

Короче говоря, используя Просмотр исходного кода, вы увидите Javascript, но не HTML. Ошибки HTML можно исправить с помощью инструмента Проверить элементы. В качестве примера:

  • В Просмотр исходного кода вы можете наблюдать:

    <h1>The title</h2>
    
  • Принимая во внимание, что с помощью Inspect Element это было бы исправлено как:

    <h1>The title</h1>
    

getPageSource() всегда возвращает разметку, полученную с помощью Просмотр исходного кода.

person DebanjanB    schedule 27.11.2020