Коробки с часами и минутами являются select
элементами, что означает, что с помощью автоматизации InternetExplorer у вас есть два основных метода для выбора отдельных элементов (и несколько альтернатив для сложных ситуаций):
- Вы можете использовать
selectedIndex
на самом select
, затем укажите индекс option
интереса в списке под этим select
. Я думаю, что начинается с 1, но вам нужно проверить. - Использовать .Selected = True для самого элемента
option
.
Поскольку у вас есть опции, которые имеют те же значения, которые вынужно выделить выпадающие по родительскому выбору, если используется второй метод. Это можно сделать, добавив родительское className впереди.
Метод 1:
час
ie.document.querySelector(".hour").SelectedIndex = 1
минута
ie.document.querySelector(".minute").SelectedIndex = 1
Метод 2:
час
ie.document.querySelector(".hour [value='0']").Selected = True 'hour 00
минута
ie.document.querySelector(".minute [value='0']").Selected = True 'minute 00
Чередуются преимущественно их варианты / варианты, написанные на javascript и выполненные методом ie.document.parentWindow.execScript
. Это может быть полезно, когда элементы по какой-то причине не взаимодействуют, но обычно недовольны, в частности, специалистами по обеспечению качества.
Чтение:
- Селекторы CSS
РЕДАКТИРОВАТЬ:
Чтобы отличить время начала от времени окончания на основе предоставленного HTML, например
ie.document.querySelector(".combodate + .combodate .hour [value='0']").Selected =True 'end hour
ie.document.querySelector(".combodate + .combodate .minute [value='0']").Selected =True 'end minute
Использование переменной
Dim var As Long
var = 0
ie.document.querySelector(".combodate .hour [value='" & cstr(var) & "']").Selected =True 'start hour
Хотя ваш HTML не отражает этого, я бы ожидал что-то вроде:
ie.document.querySelector("#starttime_field .combodate .hour [value='" & cstr(var) & "']").Selected =True
ie.document.querySelector("#endtime_field .combodate .hour [value='" & cstr(var) & "']").Selected =True