Paranoid - курс от Codeby Security School

Представляем вашему вниманию курс от команды codeby - "Комплекс мер по защите персональных данных, анонимности в интернете и не только" Подробнее ...


Как нажать на кнопку в окне webBrowser?

Очень часто в комментариях спрашивают: как нажать на кнопку в окне webBrowser? Так как этот вопрос очень часто повторяется, решил написать небольшую статью, в которой покажу несколько простых примеров, которые помогут решить данную задачу.

И так для начала создадим Windows Forms приложение, после чего поместим на форму: кнопку и элемент управления webBrowser (wb).

Windows Forms

Затем создадим страницу index.html, с которой будем работать на протяжении всей этой статьи.

html страница

открытая страница

На этом подготовительная часть закончена, переходим к примерам.

Примеры

Чтобы выполнить код, приведенный в любом из ниже приведенных примеров, необходимо выполнить следующие действия:

1. Получить содержимое страницы, например это можно сделать с помощью метода Navigate или свойства URL.

2. Дождаться полной загрузки страницы, используя событие DocumentCompleted.

3. Для того чтобы нажать на кнопку на странице, которая находится в окне элемента управления webbrower, необходимо воспользоваться методом InvokeMember, в который в качестве аргумента необходимо передать значение Click.

Как нажать на кнопку с атрибутом id?

В первом примере научимся нажимать на кнопку, которая имеет атрибут id.

Сначала с помощью метода GetElementById находим нужный нам элемент, в данном случае кнопку с указанным атрибутом id, после чего нажимаем на него.

нажата кнопка один

Как нажать на кнопку с атрибутом name?

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

результат

результат


Codeby Security School от Сodeby

Мы запустили свою онлайн школу по информационной безопасности. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного в курсе Paranoid


Как нажать на кнопку с атрибутом class?

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

Если сейчас выполнить данный код, то в результате по очереди будут нажаты все кнопки, которые имеют атрибут class со значением btnClick. «Проблема» заключается в том, что данный атрибут можно применить сразу к нескольким элементам на странице, поэтому необходимо уточнить выборку, например, указав индекс интересующего нас элемента.

результат

нажатая третья кнопка

Как нажать на кнопку, которая находится в окне фрейма?

И последний пример, в котором рассмотрим ситуацию, когда нужно нажать на кнопку, которая находится внутри фрейма. И так для начала создадим ещё один html файл (frm.html), который содержит обычную форму с кнопкой.

html страница с фреймом

страница в браузере

Изменим содержимое страницы index.html

новая страница

При работе с фреймами необходимо использовать проверку, которая позволяет дождаться полной загрузки страницы. Если ей не воспользоваться, то кнопка, в данном примере, будет нажата дважды, так как сначала будет загружена страница frm.html, после чего будет выполнен метод InvokeMember, а затем произойдет загрузка основной страницы index.html, после чего снова происходит нажатие на кнопку. В этом можно легко убедиться, если проследить за изменением значения (e.Url.AbsolutePath).

результат

нажатая кнопка

Ещё один пример, в котором показано, как можно нажать на кнопку, которая находится в ячейке таблицы.

Дано:

Решение:

Либо можно найти кнопку «Продать» по значению, например:

Обратиться к нужной таблице можно не только с помощью цикла, но и по индексу, например:

На этом всё, если вопросы, то оставляйте их в комментариях.

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


Безопасная сделка с гарантом Сodeby

Гарант является доверенным посредником между Участниками при проведении сделки.​ Услуга сайта «Проведение сделок через Гаранта» предоставляется всем зарегистрированным пользователям codeby.net Подробнее ...


Похожие темы

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