Значение не обновляется в IE при попытке изменить его с помощью VBA - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь изменить раскрывающееся значение поля в IE, используя VBA, но значение не обновляется в IE.

Ниже мой код:

IE.Document.getelementbyid("ddlSchemeCategory").Value = "MANAGE CASH"
Set objButton = IE.Document.getelementbyid("ddlSchemeCategory")
objButton.Focus
objButton.Click

HTML-код поля, которое я пытаюсь изменить:

<div class="selectbg">
  <div class="selectedvalue" id="divscat">All Categories</div>
    <select name="ddlSchemeCategory" tabindex="4" class="ddlSchemeCategory" id="ddlSchemeCategory" style="display: inline-block;">
      <option value="-1">All Categories</option>
      <option value="CREATE WEALTH">CREATE WEALTH</option>
      <option value="MANAGE CASH">MANAGE CASH</option>
      <option value="NFO">NFO</option>
      <option value="STABLE INCOME">STABLE INCOME</option>
      <option value="RETIREMENT">RETIREMENT</option>
      <option value="SAVE TAX">SAVE TAX</option>
    </select>                              
</div>

Я также пытался использовать SelectIndex, но это также не помогло мне.

Ответы [ 2 ]

0 голосов
/ 19 мая 2019

Вы также можете попробовать эти варианты ниже:

Sub firstOption()


Dim slct As HTMLSelectElement
Set slct = ie.document.getElementById("ddlSchemeCategory")
Dim opt


For Each opt In slct.getElementsBytagname("option")
    If opt.Value = "CREATE WEALTH" Then 'CREATE WEALTH sample value to be selected
        opt.Selected = True
        slct.fireevent "onchange"
        Exit For
    End If
Next opt

End Sub


Sub secondOption()


Dim slct As HTMLSelectElement
Set slct = ie.document.getElementById("ddlSchemeCategory")
Dim opt

Dim evt
Set evt = ie.document.createEvent("HTMLEvents")
evt.initEvent "change", True, False
For Each opt In slct.getElementsBytagname("option")
    If opt.Value = "CREATE WEALTH" Then
        opt.Selected = True
        slct.dispatchEvent evt
        Exit For
    End If
Next opt

End Sub
0 голосов
/ 19 мая 2019

вы можете попробовать внести изменения с помощью атрибута = значение селектора для параметров, а затем FireEvent.Вы также можете присоединить событие изменения к элементу select.

ie.document.querySelector("[value='CREATE WEALTH']").Selected = True
ie.document.querySelector("#ddlSchemeCategory").FireEvent "onchange"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...