По-гъвкаво е използването на CSS селектори.
Събиране на всички опции от целевия елемент и индексиране за желаната опция:
Например, с падащото меню за деня, което има име на vt, можете да използвате опцията [name=vt].
Първият селектор съвпада с всички елементи на маркера за опции в целевия родителски елемент, който има атрибут name
със стойност vt
.
Комбинацията на селектора е наследствен комбинатор, който включва водещ селектор на атрибути за насочване към родителския падащ списък за деня. Тъй като са необходими повече от един елемент (всички опции), методът querySelectorAll се използва за връщане на nodeList, който е индексиран, за да зададе определена опция за избрана:
Set list = .querySelectorAll("[name=vt] option") '<==nodeList
list.item(1).Selected = True
Последният ред е насочен към опцията за ден 1 от падащото меню.
Примерни резултати от CSS заявка:
Директно избиране на една опция
Отново като използвате падащото меню за деня от 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