Excel VBA Изменение веб-сайта Combobox - PullRequest
0 голосов
/ 04 июня 2018

У меня есть веб-страница, с которой я пытаюсь взаимодействовать.У него есть родительский комбобокс под названием «Результат».Когда для параметра Result задано значение параметра Index 2, всплывающий дочерний выпадающий список с двумя параметрами.Установка индекса родительского выпадающего списка и запуск события onchange работает отлично.

Однако ничто из того, что я делаю, не смогло манипулировать дочерним выпадающим списком так, как я ищу.

ЭтоКод веб-страницы для дочернего комбинированного списка:

<div style="display:none;" id="SAVE PENDINGDIV" >
<select name="SAVE PENDINGSelect" class="famSelect" style="width:10em" onChange="handleSys(this.options[this.selectedIndex].value)">
<option value="" selected="selected" >Text 1</option>
<option value="Y">Text 2</option>

Вот мой код для манипулирования родительским комбинированным списком:

Set objshell = CreateObject("Shell.Application")

IE_Count = objshell.Windows.count

For x = 0 To (IE_Count - 1)

    On Error Resume Next    ' sometimes more web pages are counted than are open
    my_URL = objshell.Windows(x).document.Location
    my_title = objshell.Windows(x).document.Title

    'find the desired page
    If my_title Like "Page Title" Then

        Set ie = objshell.Windows(x)
        Exit For

    End If

Next

ie.document.getelementbyid("Result").selectedIndex = 2
ie.document.getelementbyid("Result").FireEvent ("onchange")

Я пробовал getelementbyname и getelementbyid.Вот краткое изложение того, что я пробовал безуспешно:

ie.document.getelementbyid("SAVE PENDINGDIV").Value = "Text 2"
ie.document.getelementbyid("SAVE PENDINGDIV").Focus
ie.document.getelementbyid("SAVE PENDINGDIV").FireEvent ("onchange")

ie.document.getelementbyid("SAVE PENDINGDIV").Selected = "Selected"
ie.document.getelementbyid("SAVE PENDINGDIV").Click

ie.document.getelementbyid("SAVE PENDINGDIV").selectedIndex = 1
ie.document.getelementbyid("SAVE PENDINGDIV").options.selectedIndex = 1

Я получил только одну вещь для такой работы:

ie.document.getelementbyid("SAVE PENDINGDIV").innerText = "Text 2"

Это избавляет от выпадающего списка, что я не пытаюсь сделать, и заменяет его на «Текст 2» в виде простого текста.

...