Постараюсь объяснить наиболее полно. Есть табличка в экселе, есть веб-интерфейс БД. Других возможностей, как только взаимодействовать с бд через веб - нет. Нужно по табличным данным совершать поиск в веб интерфейсе и вытаскивать из него недостающие данные и помещать в табличку. проблема: не могу получить объекты, что бы по ним программно "кликать" веб интерфейс - hpsm (локальная система). версия 9.40.3006-P3 выглядит вот так:
Хочу щелкнуть по терминальным устройствам:
<div class="x-panel-header x-panel-header-noborder x-unselectable icon-micellaneous icon-hp x-accordion-hd" id="ext-gen-top115" tabindex="0" role="tab" aria-expanded="false" style="cursor: pointer;"><span class="x-panel-header-text" id="ext-gen-top119">Терминальные устройства</span></div>
Делаю так:
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate ("http://mos-hpsm-wb.***********/hp/index.do")
--ожидание загрузки ---
Do While IE.Busy: Loop
Do While IE.ReadyState <> 4: Loop
obj = IE.Document.getElementById("ext-gen-top115")
Do While IsNull(obj) ' это введено потому что предыдущие не отрабатывали, еще грузился контент, видимо из-за этого: "<body onload="cwc.getFrameworkWindow();cwc.setAppMode();"
Sleep (100)
obj = IE.Document.getElementById("ext-gen-top115")
'Debug.Print IsNull(obj)
Loop
'--ожидание загрузки
obj = IE.Document.getElementById("ext-gen-top115")
В результате в obj попадает всего лишь строковое название объекта, который я хочу использовать.
Но если я получают элемент вот так (т.е. тоже самое только по имени класса):
obj = IE.Document.getElementsByClassName("x-panel-header x-panel-header-noborder x-unselectable icon-micellaneous icon-hp x-accordion-hd")
То все хорошо:
Я делаю ему: obj.Click И свиток раскрывается:
Что нужно сделать что бы я получал элементы по ID ? Помогите пожалуйста.
п.с. то что я получил по имени классов этот объект я так понимаю "случайность" потому что мне нужно дальше "кликать" а я уже объекты не могу получить по имени классов. Вообщем нужно по ID.
Заранее большое спасибо!
Структурирование вопроса рождает и решение. :) Ответ:
Dim obj As Object
Set obj = IE.Document.getElementById("ext-gen-top115")
obj.Click
Спасибо ресурсу! :)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть такая проблема, после одной проверки на соответствие с условием и после изменения я больше не могу вернуться и заново проверитьУ...
Пытаюсь загрузить статику для nuxt приложенияЕсть файл shakal