Я автоматизирую завершение некоторых параметров поиска на веб-странице, используя vba. Я могу перейти к выбору / щелчку обычных выпадающих списков и элементов внутри, но этот выпадающий список с флажками создает некоторую головную боль.
Итак, я получаю страницу, ожидаю загрузки и т. Д. Я могу щелкнуть раскрывающийся список и даже щелкнуть соответствующий раскрывающийся список, чтобы отобразить список. Однако, когда я хочу выбрать один из полей в этом конкретном списке, он останавливается.
Я много чего перепробовал, поэтому не могу все это упомянуть. Но у меня есть подозрение, что это легко, если вы знаете HTML, в котором я новичок.
К сожалению, я не могу предоставить ссылку на сайт, поскольку он является внутренним, но я могу предоставить некоторые html.
Итак, вот куда я попадаю, когда щелкаю раскрывающийся список и использую DOM Explorer, чтобы установить флажок: (да, я заменил <и> на |, чтобы получить HTML. Извините за это.)
| DIV ID = класс = стиль ctl00_MainContentPlaceHolder_RadComboBoxChooseColumns_DropDown "RadComboBoxDropDown RadComboBoxDropDown_Web20" = "WIDTH: 248px; FLOAT: левый; DISPLAY: блок; TOP: 0px; ВИДИМОСТЬ: видимый" jQuery1111035398745548310944 = "16" || DIV класс = "rcbScroll rcbWidth "style =" HEIGHT: 78px "jQuery1111035398745548310944 =" 9 "
| DIV class = rcbCheckAllItems jQuery1111035398745548310944 = "18" || LABEL || INPUT class = rcbCheckAllItemsCheckBox CHECKED type = checkbox value = "" | Проверить все | / LABEL || / DIV | 101 |
| UL class = rcbList style = "LIST-STYLE-TYPE: none; ZOOM: 1; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; НАСТРОЙКА: 0px; PADDING-RIGHT: 0px "jQuery1111035398745548310944 =" 14 "|
| LI class = rcbHovered_itemTypeName = "Telerik.Web.UI.RadComboBoxItem" || LABEL || INPUT class = rcbCheckBox CHECKED type = checkbox value = "" | Подробности ERP / Center | / LABEL || / LI |
| LI class = rcbItem_itemTypeName = "Telerik.Web.UI.RadComboBoxItem" || LABEL || INPUT class = rcbCheckBox CHECKED type = checkbox value = "" | Подкатегория и семейства | / LABEL || / LI || / UL || / DIV || / DIV |
Мой код (или соответствующие его части):
Dim ie As InternetExplorer
Set ie = New InternetExplorerMedium
Set Doc = CreateObject("htmlfile")
Set Doc = ie.document
Dim SelectByInput As Object
Set SelectByInput = Doc.getElementByID_
("ctl00_MainContentPlaceHolder_RadComboBoxChooseColumns_DropDown")
'This is OK. but miss part to get to the Checkbox.
Обратите внимание, что я пытался "Doc.getElementsByClassName (" rcbCheckAllItemsCheckBox "), но получаю ошибку времени выполнения 438, Object не поддерживает это свойство или метод.
Я ожидаю, что SelectByInput.Checked = True заключит сделку, если
может просто перейти к элементу class = "rcbCheckAllItemsCheckBox" (метка "Check All") или к двум другим (с метками "ERP / Сведения о центре" и "Подкатегория и семейства".
Я должен обеспечить одно из двух решений, эквивалентных.
1) Верхний флажок установлен (ярлык «Отметить все»)
2) Оба других флажка отмечены
Спасибо.