0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
1

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

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

Author24 — интернет-сервис помощи студентам
Как можно нажать программно нажать на кнопку, у которой нет 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 Как программно нажать На кнопку В окне другого приложения ?
Есть программа на ней есть Кнопка комманд баттон как на неее нажать программно ? Как я знаю надо...

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

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

18
Эксперт WindowsАвтор FAQ
18018 / 7719 / 892
Регистрация: 25.12.2011
Сообщений: 11,497
Записей в блоге: 16
28.08.2013, 17:04 2
Многое как. У кнопки есть еще такие свойства как .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  [ТС] 3
я что-то не нашел там с onclick..
0
Эксперт WindowsАвтор FAQ
18018 / 7719 / 892
Регистрация: 25.12.2011
Сообщений: 11,497
Записей в блоге: 16
28.08.2013, 19:26 4
arsen1101995, при чем здесь onclick ?
0
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
29.08.2013, 00:19  [ТС] 5
ну а в моем примере, как нажать тогда?
0
Эксперт WindowsАвтор FAQ
18018 / 7719 / 892
Регистрация: 25.12.2011
Сообщений: 11,497
Записей в блоге: 16
29.08.2013, 03:11 6
Лучший ответ Сообщение было отмечено The trick как решение

Решение

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

Цитата Сообщение от Dragokas Посмотреть сообщение
.name, .classname, .tagname, .defaultvalue
0
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
29.08.2013, 13:40  [ТС] 9
То есть с classname, это будет так:
ie.document.getElementsByName("cn").value=sim1
????
или
ie.document.getElementsByClassName("cn").value=sim1
????
0
Эксперт WindowsАвтор FAQ
18018 / 7719 / 892
Регистрация: 25.12.2011
Сообщений: 11,497
Записей в блоге: 16
29.08.2013, 14:26 10
Цитата Сообщение от arsen1101995 Посмотреть сообщение
ie.document.getElementsByName("cn").value=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  [ТС] 11
Dragokas, блииин, извините, я попробывал так: ie.document.getElementsByName("cn").value=sim1
у меня все равно ошибка.
0
Dragokas
29.08.2013, 22:39
  #12

Не по теме:

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

0
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
29.08.2013, 23:13  [ТС] 13
Dragokas, ладно, спасибо
0
98 / 49 / 0
Регистрация: 14.08.2013
Сообщений: 230
Записей в блоге: 4
30.08.2013, 06:51 14
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  [ТС] 15
-DimN-, а как мне узнать № кнопки?
0
98 / 49 / 0
Регистрация: 14.08.2013
Сообщений: 230
Записей в блоге: 4
30.08.2013, 09:57 16
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  [ТС] 17
-DimN-, Вы сможете потом, когда будет возможность, выложить программу?)
0
98 / 49 / 0
Регистрация: 14.08.2013
Сообщений: 230
Записей в блоге: 4
30.08.2013, 11:23 18
Это кусок реального рабочего кода:
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  [ТС] 19
DimN, спавсибо щас буду искать нужный мне Item
0
30.08.2013, 14:21
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2013, 14:21
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

Новые блоги и статьи
Распознавание изображений (компьютерное зрение) на C++
InfoMaster 20.01.2025
Введение в компьютерное зрение и основы работы с изображениями Компьютерное зрение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, позволяющую. . .
Какой язык программировани­я лучший для разработки нейронных сетей
InfoMaster 20.01.2025
В современном мире технологий искусственные нейронные сети становятся неотъемлемой частью множества инновационных решений, от распознавания речи до автоматического управления транспортными. . .
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru