Спонсор публикаций BlackDiver

Обучение тестированию на проникновение  - Обучению тестированию на проникновение от BlackDiver. Базовый курс

Как найти html элемент по его классу?

В этой статье хотелось бы рассказать, как можно быстро и легко найти html элемент по его классу. Поиск элементов в HTML документе — это очень распространённая задача, с которой очень часто сталкиваются многие программисты, если например, нужно выполнить парсинг сайта или какой-нибудь отдельной HTML страницы. В отличие от других классов для работы с web, многие из которых содержат уже готовые методы, для решения данной задачи, class webBrowser по умолчанию не предоставляет такого функционала. Поэтому, если Вам необходимо найти элемент по его классу, то Вы можете воспользоваться следующим способом.

И так, предположим, что у нас есть простая html страница, состоящая из трёх блоков div. Задача: найти второй элемент div по его классу.

Создадим Windows Forms приложение, после чего добавим на форму: кнопку и элемент управления webBrowser. Если Вам не требуется графическое отображение страницы, то тогда замените control webBrowser на одноименный класс.

control webbrowser



Теперь нужно загрузить веб страницу. Например, это можно сделать с помощью метода webBrowser Navigate, о котором рассказывалось чуть ранее в одной из предыдущих статей, если интересно, то более подробно об этом можно прочитать здесь.

Далее подписываемся на событие DocumentCompleted, чтобы дождаться полной загрузки страницы. Если страница содержит фреймы, то тогда возможно так же потребуется добавить дополнительную проверку, о которой так же рассказывалось чуть ранее.

Будем считать, что страница на данный момент полностью загружена, и теперь можно переходить к решению нашей задачи. И так на данный момент нас больше всего интересует запись: div class = «two», где div — это тэг, а class — это атрибут html элемента, который чаще всего используется для привязки стиля к одному или нескольким элементам на странице. И так, раз это html атрибут, то его можно легко найти с помощью метода GetAttribute. Но, перед этим нужно найти div элемент, у которого мы и будем искать эти атрибуты.

Не смотря на то, что коллекция (divs) содержит три элемента div, поиск по атрибуту class не даёт никаких результатов. Это происходит потому, что интерфейс HTMLElement, который описывает все элементы внутри дерева DOM, не содержит такого атрибута.

Как видно из описания интерфейса, вместо атрибута class используется атрибут className, это связано с тем, что во многих языках программирования слово class является ключевым словом, как например, в том же языке csharp, в результате чего часто возникали различные конфликтные ситуации, поэтому его было решено переименовать. Зная это, внесём небольшое изменение в наш выше написанный код:

Проверяем, теперь всё работает!

Читайте также:


Внимание конкурс! на форуме codeby

Наш конкурс  - это возможность получить денежные призы, премиум доступ на форуме и скидку в нашем маркетплейсе

Похожие темы

WebBrowser основные свойства для работы с контенто... WebBrowser работа с контентом И так, html страница была полностью загружена в control webBrowser, и теперь можно переходить к обработке полученных да...
c# Как выделить элемент на странице WebBrowser при... Выделение элемента при наведении мышкой в WebBrowser Из этой статьи вы узнаете, как выделить элемент в WebBrowser при наведении мышкой. Как обычно...
c# Создание веб-сервера (дополнение)... Создание веб-сервера на языке c# (дополнение) Данная статья является дополнением к предыдущей статье: как создать веб-сервер с помощью языка c#. В не...
Как нажать на кнопку в webBrowser?... Как нажать на кнопку в окне webBrowser? Очень часто в комментариях спрашивают: как нажать на кнопку в окне webBrowser? Так как этот вопрос очень част...
Web Application Pentesting | Атаки на HTTP Basic A... Привет колеги. Добро пожаловать на курс Web Application Pentesting. В этой статье мы с вами поговорим о: Вспомним немного заголовки ответа серв...