См. Этот снимок экрана, это тот, который нужно щелкнуть в раскрывающемся списке HTML-код после выбора Metrics-1 из выпадающего меню Я пытаюсь выбрать значение в поле со списком в ИнтернетеИсследователь с помощью VBA.Когда веб-сайт открывается, поле со списком имеет значение по умолчанию.Я хочу выбрать последнее значение в поле со списком.Я проверил его элементы и нашел уникальный идентификатор.В элементе проверки браузера нет ни списка параметров, ни номера индекса, но в комбинированном окне отображается 8 списков.
Я попытался getElementById("Unique_Id").innerText = "Last_value"
, и в поле со списком отображается значение.Но проблема в том, что когда я выбираю то же самое с помощью мыши, следующее поле со списком обновляется и выдает релевантные результаты на основе текущего значения поля со списком.После того, как вы сделали то же самое через vba, следующее поле со списком не получило обновления.Он показывает результаты значения по умолчанию, выбранного в поле со списком, а не для значения, которое я дал с помощью innerText
.
Обратите внимание, что.Я пытался .onfocus
, .click
, .selectedindex
, чтобы получить результаты для выбранного значения, но ничего не получалось.
Выпадает вниз:
•<div id="reportsDropDownContainer" class="col-lg-4 col-md-4 col-sm-4 col-xs-4"›
• <div class="form-group"›
<label id="reportsDropDownLabel" class="control-laber> Presets</label>
• <div class="Select has-value Select--single">
• <div class="Select-contror>
• <div class="Select-multi-value-wrapper" id="react¬select-4—value"›
• <div class="Select-value"›
<span class="Select-value-label" role="option" aria-selected="true" id="react-select-4--value-item">Activity History</span> == $0
</div>
<div aria-expanded="false" aria-owns aria-activedescendant="react-select-4--value" aria-disabled="false" class="Select-input" role= "combobox" tabindex="0" style="border: Opx; width: ipx; display: inline-block;"></div>
</div>
Sub ABC()
Dim IE As SHDocVw.InternetExplorer
Dim HTMLdoc As MSHTML.HTMLDocument
Dim HTMLInputs As MSHTML.IHTMLElementCollection
Dim HTMLInput As MSHTML.IHTMLElement
Dim HTMLTags As MSHTML.IHTMLElementCollection
Dim HTMLTag As MSHTML.IHTMLElement
Dim e As Object
Set IE = New InternetExplorerMedium
IE.Visible = True
IE.navigate "https://abc.domain.com"
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Application.Wait (Now + TimeValue("00:02:00")) 'After ready state, takes time to load the some contents.
Set HTMLdoc = IE.document
Set HTMLTags = HTMLdoc.getElementsByTagName("a")
For Each HTMLTag In HTMLTags
If HTMLTag.getAttribute("href") = "/site/xyz/Reports" Then
HTMLTag.Click
Exit For
End If
Next
Application.Wait (Now + TimeValue("00:00:02"))
IE.document.getElementById("react-select-4--value-item").Item.Value = "Metrics-1" 'It's not working. Showing run time error
IE.document.getElementById("react-select-4--value-item").Value = "Metrics-1" 'It's not working. Showing run time error
IE.document.getElementById("react-select-4--value-item").selectedIndex = 8 'It 's not working. Showing run time error
Set HTMLInput = HTMLdoc.getElementById("react-select-4--value-item")
HTMLInput.innerText = "Metrics-1"
HTMLInput.Focus
HTMLInput.FireEvent "onchange"
HTMLInput.Click
'Пробовал то же самое по-другому, используя aria-activedescedant.
Set HTMLInputs = HTMLdoc.getElementsByTagName("div")
For Each HTMLInput In HTMLInputs
If HTMLInput.className = "Select-input" And HTMLInput.role = "combobox" And HTMLInput.getAttribute("aria-activedescendant") = "react-select-4--value" Then
Debug.Print HTMLInput.getAttribute("aria-activedescendant")
HTMLInput.getAttribute("aria-activedescendant").Value = "react-select-4--Option-10"
Debug.Print HTMLInput.getAttribute("aria-activedescendant")
End If
Next
HTMLInput.getElementById("react-select-4--value-item").setAttribute.Value = "Metrics-1"
End Sub