Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327

Как можно нажать программно нажать на кнопку, у которой нет id?

28.08.2013, 15:47. Показов 6837. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно нажать программно нажать на кнопку, у которой нет id??
В html она прописывается так:
HTML5
1
2
3
4
5
<a href="#" onclick="
getBetslip().confirmPlaceBet(false, true);
" class="but-place-bet">
ОК
</a>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.08.2013, 15:47
Ответы с готовыми решениями:

Как программно нажать кнопку на интернет странице?
Как можно реализовать нажатие кнопки в браузере, на странице? Если это возможно, подскажите пожалуйста) Спасибо)

VB 6 Как программно нажать На кнопку В окне другого приложения ?
Есть программа на ней есть Кнопка комманд баттон как на неее нажать программно ? Как я знаю надо найти окно Findewindow но как найти кнопку...

Как программно нажать PrintScreen
Пробую через SendKeys - Beep есть, а Stop-а нет ((( Private Sub Cmd_запускТМР0_Click() AppActivate &quot;Internet Explorer&quot;:...

18
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
28.08.2013, 17:04
Многое как. У кнопки есть еще такие свойства как .id, .name, .classname, .tagname, .defaultvalue и .value в довесок, по которым ее можно идентифицировать.

Сначала нужно найти в какой форме. Коллекция Forms
Затем обойти коллекцию кнопок, используя метод getElementsByTagName

Можно без обхода коллекции, если у кнопки есть имя:

Document.getElementByName - http://msdn.microsoft.com/en-u... s.85).aspx
0
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
28.08.2013, 19:18  [ТС]
я что-то не нашел там с onclick..
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
28.08.2013, 19:26
arsen1101995, при чем здесь onclick ?
0
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
29.08.2013, 00:19  [ТС]
ну а в моем примере, как нажать тогда?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
29.08.2013, 03:11
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Как обычно - найти элемент и вызвать метод click
0
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
29.08.2013, 06:18  [ТС]
Эээм...А по какому признаку его найти?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
29.08.2013, 13:18
.....

Цитата Сообщение от Dragokas Посмотреть сообщение
.name, .classname, .tagname, .defaultvalue
0
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
29.08.2013, 13:40  [ТС]
То есть с classname, это будет так:
ie.document.getElementsByName("cn").valu e=sim1
????
или
ie.document.getElementsByClassName("cn") .value=sim1
????
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
29.08.2013, 14:26
Цитата Сообщение от arsen1101995 Посмотреть сообщение
ie.document.getElementsByName("cn").valu e=sim1
Да, можно попробовать так. Зависит от страницы, наличия на ней форм.

Цитата Сообщение от arsen1101995 Посмотреть сообщение
getElementsByClassName
arsen1101995, нет, конечно. Вы это из головы берете? Смотрите MSDN и http://www.w3schools.com/dom/dom_document.asp

.classname - это только свойство, по которому можно точно идентифицировать объект, через объект IE по нему коллекцию построить нельзя.
0
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
29.08.2013, 22:23  [ТС]
Dragokas, блииин, извините, я попробывал так: ie.document.getElementsByName("cn").valu e=sim1
у меня все равно ошибка.
0
29.08.2013, 22:39

Не по теме:

arsen1101995, тоже извините. Но я не помогу, ибо просто нет времени, даже если бы это было за плату.

0
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
29.08.2013, 23:13  [ТС]
Dragokas, ладно, спасибо
0
 Аватар для DimN
98 / 49 / 0
Регистрация: 14.08.2013
Сообщений: 230
Записей в блоге: 4
30.08.2013, 06:51
arsen1101995, я в таких случаях разбирал раздел ie.document.all? и там под номером Item(№) находил нужную noname кнопку.
и получалось:
ie.document.all.item(24).click

так некоторые задачи у меня уже пару лет работают.

радость в том, что она всегда под одним номером.
беда в том, что на незнакомой страницы без твоего вмешательства такое не проделать!
1
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
30.08.2013, 08:53  [ТС]
-DimN-, а как мне узнать № кнопки?
0
 Аватар для DimN
98 / 49 / 0
Регистрация: 14.08.2013
Сообщений: 230
Записей в блоге: 4
30.08.2013, 09:57
arsen1101995, запускаешь код в режиме отладки.
После создания объекта, например так:
Visual Basic
1
Set IE = CreateObject("InternetExplorer.Application")
и после загрузки нужной страницы, например так.
Visual Basic
1
IE.navigate "хттп два еточия//сайт.фу/логин.пхп"
В окне локальных переменных увидишь IE+, жмёшь на + и видишь "внутренности" объекта IE.
Идёшь сюда: ie.document.all+, в котором будет куча (или кучка) Item(№)+.
Открываешь каждый итем (если кнопка отображается в конце страницы, то и начинай с последнего итема) и смотришь его свойства (outerhtml, innertxt, text, name или ещё как-то идентифицируешь) и всё, получишь номер итема этой кнопки ДЛЯ ЭТОЙ СТРАНИЦЫ.

Ну а потом уже:
Visual Basic
1
ie.document.all.item(нужный номер итема).click

Что-то вроде этого, я щас не на работе, а мои файлики, в отличии от меня, на работе, так что точнее сказать не могу...
0
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
30.08.2013, 11:10  [ТС]
-DimN-, Вы сможете потом, когда будет возможность, выложить программу?)
0
 Аватар для DimN
98 / 49 / 0
Регистрация: 14.08.2013
Сообщений: 230
Записей в блоге: 4
30.08.2013, 11:23
Это кусок реального рабочего кода:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub Temperature()
'бла-бла-бла
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate "http://10.10.10.10/oko/temperatura.jsp": IE.Visible = True
While IE.Busy Or IE.ReadyState <> 4: Wend
With IE.Document
    .getElementsByName("date1").Item(0).Value = Format(dday - 1, "00") & "." & Format(dmonth, "00") & "." & dyear
    .getElementsByName("Filename").Item(0).Value = Format(dday - 1, "00") & Format(dmonth, "00") & dyear
    .all.Item(.all.Length - 1).Click
End With
Set IE = Nothing: ThisWorkbook.Close SaveChanges:=True
End Sub
в строке 12 указывается номер кнопки в виде all.Length - 1 (т.е. количество итемов - 1), так как она у меня ВСЕГДА предпоследняя по списку, можно и цифрой было написать, но это я увидел только сейчас и переделывать не стал.

ВАЖНО!!!
Да и ещё, точно не помню, но по моему там заморочка такая:
Если в структуре IE.Document.all.+ написано Item(0), то для её нажатия номер надо писать на 1 больше .all.Item(1).Click.
Вроде бы...
0
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
30.08.2013, 14:21  [ТС]
DimN, спавсибо щас буду искать нужный мне Item
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2013, 14:21
Помогаю со студенческими работами здесь

Как программно переместить и нажать мышь???
См. тему. Вообще в VB такое возможно? Спасибо.

Как нажать кнопку в другой программе?
Никто не знает, как нажать кнопку в другой программе? Я знаю даже что на ней написано! ;-)

Как нажать кнопку по истечению времени?
как можно осуществить что бы после нажатия нажатия Button1 пошло время указаное в Label1 и по истечению это времени снова нажималась...

Как автоматически нажать кнопку на форме
Добрый день подскажите как на VB можно автоматически нажать кнопку на форме? Часть кнопки: err.Clear Cmd_apply_Click_err: ...

Как нажать одну и ту же кнопку в 2-10 окнах? Подробнее...
Здравствуйте. У меня есть несколько окон, в которые _OДНОВРЕМЕННО_ нужно послать клавишу ENTER. Короче, во все окна виндов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru