Более универсальным является использование селекторов CSS.
Сбор всех параметров из целевого элемента и индексация нужного параметра:
Например, в раскрывающемся списке дней с именем vt вы можете использовать опцию [name=vt]
Первый селектор соответствует всем элементам тега option в целевом родительском элементе, который имеет атрибут name
со значением vt
.
![введите здесь описание изображения](https://i.stack.imgur.com/dQJsr.png)
Комбинация селекторов — это комбинатор-потомок, который включает селектор ведущего атрибута для целевого родительского раскрывающегося списка для дня. Поскольку требуется более одного элемента (все параметры), метод querySelectorAll используется для возврата списка узлов, который индексируется, чтобы установить выбранный конкретный параметр:
Set list = .querySelectorAll("[name=vt] option") '<==nodeList
list.item(1).Selected = True
Последняя строка нацелена на вариант первого дня в раскрывающемся списке.
Пример результатов запроса CSS:
![](https://i.stack.imgur.com/GsOcw.png)
Прямой выбор одного варианта
Опять же, используя раскрывающийся список дней из Datum der Bekanntmachung
, вы можете использовать селектор CSS
[name=vt] option[value='2']
Это еще один комбинатор-потомок, объединяющий два селектора атрибутов. Родительский элемент имеет атрибут name
со значением vt
, а целевой, единственный вариант, дочерний элемент имеет тег option
и атрибут value
со значением 2
. Это нацелено на вариант дня 2 раскрывающегося списка.
VBA:
Option Explicit
Public Sub MakeSelections()
Dim IE As New InternetExplorer
With IE
.Visible = True
.navigate "http://www.handelsregisterbekanntmachungen.de/?aktion=suche#Ergebnis"
While .Busy Or .readyState < 4: DoEvents: Wend
Dim list As Object
With .document
Set list = .querySelectorAll("[name=vt] option")
list.item(1).Selected = True '<==select first from list
.querySelector("[name=vt] option[value='2']").Selected = True '<Select second direct
End With
Stop '<== Delete me later
.Quit
End With
End Sub
person
QHarr
schedule
30.09.2018