Как нажать кнопку в браузере
Здравствуйте. Я читал много материала про это, но так и смог понять. Будьте добры, объясните новичку, как, например, нажать кнопку логина вконтакте или кнопку авторизации в почте яндекса или г-майла (или нажать кнопку далее в установщике программ). И сразу еще 2 вопроса: как можно вписать данные в поле браузера (тот же адрес почты на странице Gmail к примеру) и можно ли все это делать в скрытом окне IE, вызванном функцией IECreate?
Заранее спасибо за ответ. Очень вас прошу расписывать свои действия, т.к. с автоитом пока на Вы.
P.S: Немного поторопился. Почитал форумы, и кое-что прояснилось. Но далеко не все )
Garrett
Модератор
Продвинутый
Некоторые вещи получились, но никак не пойму как нажать на кнопку в браузере. В AutoIt Window Info написано что это все 1 контрол, т.е. не видит кнопки и инпуты. У меня же задача вбить текст в инпут и клацнуть кнопку. Например, вбить логин и пароль в Gmail и нажать ВОЙТИ. Подскажите как это сделать.
P.S: Я думаю что это надо реализовать СontrolSend'ом и ControlClick'ом. Попробовал с блокнотом - получается. А в браузере не могу. Заранее спасибо.
Продвинутый
Ура, разобрался. Теперь обленился, комп сам почту смотрит в браузере, сам входит, пишет список и выходит ))
Теперь проблема в другом. Нужно попасть в учетные записи пользователя (где их настраивать то есть). Знаю только один путь - через панель управления. Никак не получается клацнуть на пуске, тупо маускликом чото уже влом) . Пробовал искать екзешник и от панели управления, и от учетных записей, не нашел. Помогите пожалуйста либо таки клацнуть на пуске, либо зайти в уч. записи по экзешнику!Заранее спасибо!
AutoIT Гуру
Продвинутый
axlwor
Скриптер
AutoIT Гуру
Продвинутый
Продвинутый
блииин. теперь другая засада. Как нажимать на кнопки в учетных записях? там только один контрол. Короче, как с помощью АвтоИта создать новую учетку?
AutoIT Гуру
Можно при помощи командной строки. Примеры:
net user Test qwerty /add (добавить пользователя Test с паролем qwerty)
net user Test /add (добавить пользователя Test без пароля)
net user Test /delete (удалить пользователя Test)
net localgroup Administrators Test /add (назначить пользователю Test права Administrators (англ.))
net localgroup Администраторы Test /add (назначить пользователю Test права Администраторы (рус.))
net localgroup Администраторы Test /delete (убрать пользователю Test права Администраторы (рус.))
net localgroup Users Test /add (назначить пользователю Test права Users (англ.))
net localgroup Пользователи Test /delete (убрать пользователю Test права Пользователи (рус.))
А в AutoIt это примерно так:
Как можно нажать программно нажать на кнопку, у которой нет id?
Как можно нажать программно нажать на кнопку, у которой нет id?? В html она прописывается так: <a.
VB 6 Как программно нажать На кнопку В окне другого приложения ?
Есть программа на ней есть Кнопка комманд баттон как на неее нажать программно ? Как я знаю надо.
Как программно нажать PrintScreen
Пробую через SendKeys - Beep есть, а Stop-а нет ((( Private Sub Cmd_запускТМР0_Click().
Как программно переместить и нажать мышь.
См. тему. Вообще в VB такое возможно? Спасибо.
Извините, а в скобках нужно ид кнопки указать??если да, то как узнать какой у нее ид?
Добавлено через 22 секунды
И если не сложно, можете пример скинуть?
Спасибо)
Решение
Открываете браузер. Нажимаете кнопку "Просмотреть исходный код".
Либо правой кнопкой мышы по элементу "Кнопке" (например, в опере "Проинспектировать элемент").
Сможете найти имя элемента.
если это ваш код, то id елементу вы задаёте сами
Нет, это не мой код..Но нужно, чтобы программка сама нажимала кнопку на сайте)
Добавлено через 49 минут
т.е. ид кнопки, 942125..да?
Добавлено через 1 минуту
или вот это всё??
942125@To_Win_Match.1
??
Добавлено через 52 секунды
Dragokas, я не совсем понял, что мне надо найти в поиске..
Можете объяснить, пожалуйста)
Добавлено через 4 минуты
SD-company,
Если я напишу это, то программка кликнет по этой кнопке?
arsen1101995, например, найти ответ на свой вопрос.
Если это не ваш код, то что вы понимаете под программой? Вы будете запускать скрипт в браузере в консоли? Или как?
id - это всё что в кавычках
Добавлено через 7 минут
или под браузером подразумевается программный объект WebBrowser, в который вы загружаете страницу? Тогда правильный совет от Dragokas.
Dragokas, почему?
Добавлено через 3 минуты
У меня, программа Visual Basic, должна выполнить нажатие по кнопке, на одной веб странице..
Как это лучше(легче) будет реализовать??через WebBrowser?
То есть, мне надо загрузить эту страничку в WebBrowser, а потом там работать с ней?
Если да, то можете подсказать, как это сделать)
Всё зависит от ваших задач. Зачем вы по кнопке кликаете? Может быть два подхода
1. Загружаете страницу в объект WebBrowser и работаете с ней как с частью вашей программы - это проще.
2. Работаете с окном браузера как со сторонней программой, к объектной модели которой у вас доступа нет, через WinAPI. Шерстите Google на тему WinAPI или управление окнами сторонних приложений, это очень оширная и не простая тема
во-первых, мало времени.
во-вторых, даже если будет, мне не на чем практиковаться. Выложенный кусок кода для меня ничего не значит, т.к. у меня нет уверенности, что исходя из него у меня получится дать рабочее решение.
Посмотрите хотя бы как была оформлена моя тема и как Ваша.
Я сделал все, для того, чтобы желающие мне помочь могли легко мне помочь и им было приятно посмотреть мои попытки/наработки и т.п.
Добавлено через 9 минут
SD-company, еще вариант 3. Работая с "чужим" приложением Internet Explorer, создав новый объект и управляя элементами на странице через его методы и свойства.
Добавлено через 1 минуту
То есть, мне надо загрузить эту страничку в WebBrowser, а потом там работать с ней?
Если да, то можете подсказать, как это сделать)
есть еще такие тонкости, как авторизация и куки.
Если нужно нажать на кнопку, предварительно авторизовавшись, то дело еще усложняется.
Очень часто в комментариях спрашивают: как нажать на кнопку в окне webBrowser? Так как этот вопрос очень часто повторяется, решил написать небольшую статью, в которой покажу несколько простых примеров, которые помогут решить данную задачу.
И так для начала создадим Windows Forms приложение, после чего поместим на форму: кнопку и элемент управления webBrowser (wb).
Затем создадим страницу index.html, с которой будем работать на протяжении всей этой статьи.
На этом подготовительная часть закончена, переходим к примерам.
Примеры
Чтобы выполнить код, приведенный в любом из ниже приведенных примеров, необходимо выполнить следующие действия:
1. Получить содержимое страницы, например это можно сделать с помощью метода Navigate или свойства URL.
2. Дождаться полной загрузки страницы, используя событие DocumentCompleted.
3. Для того чтобы нажать на кнопку на странице, которая находится в окне элемента управления webbrower, необходимо воспользоваться методом InvokeMember, в который в качестве аргумента необходимо передать значение Click.
Как нажать на кнопку с атрибутом id?
В первом примере научимся нажимать на кнопку, которая имеет атрибут id.
Сначала с помощью метода GetElementById находим нужный нам элемент, в данном случае кнопку с указанным атрибутом id, после чего нажимаем на него.
Как нажать на кнопку с атрибутом name?
Во втором примере в качестве задачи нам нужно программно нажать на кнопку под номером шесть, которая имеет атрибут name. Как видно на картинке данный атрибут применяется сразу к двум html элементам, поэтому выполним несколько дополнительных действий: сначала найдем все кнопки на странице, а затем проверим у каждой из них наличие атрибута name и интересующего нас имени.
Как нажать на кнопку с атрибутом class?
В этом примере в качестве задачи нам необходимо нажать на третью кнопку, которая содержит атрибут class. О том, как найти html элемент по его классу я рассказывал в одной из предыдущих статей, поэтому сразу же перейдем к решению задачи.
Как нажать на кнопку, которая находится в окне фрейма?
И последний пример, в котором рассмотрим ситуацию, когда нужно нажать на кнопку, которая находится внутри фрейма. И так для начала создадим ещё один html файл (frm.html), который содержит обычную форму с кнопкой.
Изменим содержимое страницы index.html
При работе с фреймами необходимо использовать проверку, которая позволяет дождаться полной загрузки страницы. Если ей не воспользоваться, то кнопка, в данном примере, будет нажата дважды, так как сначала будет загружена страница frm.html, после чего будет выполнен метод InvokeMember, а затем произойдет загрузка основной страницы index.html, после чего снова происходит нажатие на кнопку. В этом можно легко убедиться, если проследить за изменением значения (e.Url.AbsolutePath).
Ещё один пример, в котором показано, как можно нажать на кнопку, которая находится в ячейке таблицы.
Обратиться к нужной таблице можно не только с помощью цикла, но и по индексу, например:
На этом всё, если вопросы, то оставляйте их в комментариях.
10 thoughts to “Как нажать на кнопку в webBrowser?”
Здравствуйте, почему то когда я в webbrowser нажимаю кнопку загрузить чего-нибудь фалй загружается но не отображается в закачанных после загрузки.
Здравствуйте! Отличная статья. По Вашим примерам все понятно, все повторил и все сработало.
Но вот как применить к моей HTML странице не соображу(опыта 0,0).
Почитав азы HTML обнаружил, что кнопка расположена в ячейке таблицы и описывается так:
Подскажите пожалуйста.
Спасибо.
В конце статьи (перед видео) добавил пример.
Спасибо за информацию. Очень помогла. Примеры HTML кода очень простые, а в реальных страницах гораздо все навороченнее. Как устроена моя страница я смог понять только в инспекторе FireFox. Оказалось моя кнопка вложена в 17 тэгов.
Хотелось бы спросить: 1.В инспекторе после открытия тэга таблицы идет тэг tbody, а при просмотре HTML кода такого тэга нет. Нужно ли выгружать колекцию элементов этого тэга и парсить их? 2. Как вывести (например в textbox) содержимое колекции (AttributeName, Value)
Спасибо.
В инспекторе после открытия тэга таблицы идет тэг tbody, а при просмотре HTML кода такого тэга нет.
Нужно ли выгружать колекцию элементов этого тэга и парсить их?
Зависит от задачи.
Как вывести (например в textbox) содержимое колекции (AttributeName, Value)
Получить все атрибуты элемента можно только, работая с DOM моделью html документа, а это уже неуправляемый код (в проект нужно добавить библиотеку mshtml).
Не стандартная кнопка, как с ней быть? Очень нужна помощь. Есть такой фрагмент страницы (таких кнопок на странице несколько, и какую кнопку пользователь нажал сервер определяет по значению скрытого поля)
Мне кроме того что нажать на кнопку нежно еще и выполнить присвоение переменной cp_f_ = 1 которая в скрытом поле. Т.е. еще раз пользователь на сайте нажимает одну из кнопок, выполняется скрипт ScriptName(), и при выполнении скрипта на сервере, сервер по значению переменной cp_f_ понимает что нужно сделать, как быть?
Добрый день.
Разберем такой случай когда нам присылают ссылку на подтверждение, а после перехода по ссылке открывается страница с кнопкой подтверждения на которую надо нажать. Либо просто надо нажать на кнопку на странице HTML. Если с переходом по ссылке более менее все понятно, то с нажатием кнопки довольно не просто. Давайте разбираться.
Немного теории.
Обычно копка является частью HTML формы. Соответственно нажимая на кнопку браузер формирует ответ серверу, обычно в POST запросе, собирая все данные с input элементов в веб-формы. Проще говоря цель нажатия кнопки это отослать представлениt заполненной веб-формы на веб-сервер.
Возьмем следующий пример:
В этом примере имеется форма с именем «login» методом «POST» и обработчиком «Home/Result». И имеются поля id и sitename которые уже заполнены значениями id и deptech соответственно, также имеется кнопка с именем «send».
В итоге нужно сформировать представление веб формы отослать на обработчик «Home/Result».
По умолчанию интернет-тип данных для отправки вэб-форм медиа это: «application/x-www-form-urlencoded».
Это формат для кодирования пар ключ-значение с возможностью дублирования ключей. Каждая пара ключ-значение отделяется символом &, ключ отделён от значения символом = . В ключах и значениях пробелы заменяются на знак +, и затем, используя URL-кодирование, заменяются все не буквенно-цифровые символы.
Для нашего примера :
Будет закодирована следующим образом
WebClient нам в помощь.
Так как мы работаем на прямую с протоколом то этот ответ мы должны сформировать самостоятельно.
Открываем проект в VisualStudio, создаем проект под названием, например, ClickHtmlButton. Кидаем на форму три текстбокса и кнопку.
В первый текстбокс будем подставлять нашу ссылку, во второй будем обозначим как имя нашей html кнопки. Ну и третье поле будем записывать ответ сервера после нажатия htmlкнопки.
В обработчик кнопки добавим следующий код:
Установка HTMLAgilityPack
Для решения проблемы нам понадобиться также дополнение HTML Agility Pack это HTML парсер. Его можно найти в Nuget через поиск либо добавить через ту же консоль nuget командой:
Вам хотелось бы узнать, как пользоваться браузером без мышки? Ведь ситуации бывают разные , и такое умение может пригодиться в любую минуту. К примеру , может выйти из строя ваша компьютерная мышь, что вы тогда будете делать, если работу нужно выполнить срочно, а бежать за новой мышью просто нет времени?
А может быть , вы просто расслабились на работе . Например , включили себе киношку на рабочем компьютере, пока шефа нет. Сами «растеклись» и «вмялись» в рабочее кресло, пожевывая бургер и попивая кофе. И тут входит шеф. Что делать? До мыши не дотянуться, да и в спешке можно «промахнуться» курсором и закрыть не то , что надо, но зато под руками клавиатура. Всего несколько комбинаций , и фильм закрыт, а рабочий процесс «продолжается».
В общем, есть несколько полезных комбинаций на клавиатуре, которые было бы неплохо знать, чтобы научиться управлять браузером без мышки.
Как пользоваться браузером без мышки
- ускоряет вашу работу в сети;
- удивляет ваших коллег, которые никогда не расстаются с мышью;
- отсутствие мыши не достави т вам никакого неудобства.
Комбинации клавиш, чтобы пользоваться браузером без мышки
Для удобства запоминания и поиска нужной комбинации кнопок клавиатуры, мы разбили их на небольшие группы.
Работа в строке обозревателя интернета
Взаимодействие с вкладками
- «Ctrl+1-8» — такое сочетание переключит вас на вкладку в «панели вкладок», где цифра будет означать порядковую нумерацию вкладки;
- «Ctrl+9» — переключ ает на последнюю вкладку , и неважно , сколько их будет всего;
- «Ctrl+Tab» — переключает на последующую вкладку, двигаясь слева направо;
- «Ctrl+Shift+Tab» — переключает предыдущую вкладку, двигаясь справа налево;
- «Ctrl+W», «Ctrl+F4» — закрывает открытую вкладку;
- «Ctrl+Shift+T» — представляет для работы только что закрытую вкладку;
- «Ctrl+Т» — представляет для работы новую вкладку;
- «Ctrl+N» — представляет для работы новое окно обозревателя;
- «Alt+F4» — закрывает открытое окно обозревателя.
Взаимодействие с навигацией
- «Alt+», «Пробел» — это «назад»;
- «Alt+», «Shift+Backspace» — это «вперед»;
- «F5» — обновление;
- «Ctrl+F5» — обновление, но происходит игнорирование кэша;
- «Esc» — останавливает загрузку;
- «Alt+Home» — представляет вашему вниманию домашнюю веб - страницу.
Взаимодействие с масштабированием
- «Ctrl+«плюс»» — увеличивает масштаб;
- «Ctrl+«минус»» — уменьшает масштаб;
- «Ctrl+0» — восстанавливает стандартный масштаб;
- «F11» — включение полноэкранного режима.
Работа со скроллингом
- «Пробел», «Page Down» — перемещает вниз на целый экран;
- «Shift+Пробел», «Page Up» — перемещает вверх на целый экран;
- «Home» — перемещает в начало веб - страницы;
- «End» — перемещает в конец веб - страницы.
Взаимодействие с поиском
- «Ctrl+Е», «Ctrl+К» — фокусирует ся на поиске, который встроен в сам браузер;
- «Alt+Enter» — представляет вашему вниманию новую вкладку с результатами поиска;
- «Ctrl+F», «F3» — открывает поиск по открытой странице;
- «Ctrl+G», «F3» — ищет заданное значение на открытой странице.
Работа с историей и закладками
- «Ctrl+H» — пред о ставляет вам историю браузера;
- «Ctrl+J» — пред о ставляет историю загрузок;
- «Ctrl+D» — сохраняет закладку открытого веб - сайта.
Еще парочка полезных команд
- «Ctrl+Р» — отправляет в печать открытую страницу;
- «Ctrl+S» — сохраняет веб - страницу на hard-диск;
- «Ctrl+О» — представляет для работы файлы;
- «Ctrl+U» — показывает исходный код открытой страницы.
Заключение
Как вы успели заметить, пользоваться браузером без мышки — это довольно просто, нужно всего лишь знать несколько основных команд. Их можно запомнить, а можно распечатать и держать перед глазами на всякий случай.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Читайте также: