Нужна помощь в выборе нескольких элементов в выпадающем списке в IE, используя VBA - PullRequest
1 голос
/ 03 апреля 2019

У меня проблема с одной частью моей работы по автоматизации, которая заключается в выборе ВСЕХ опций в выпадающем списке, на веб-странице с использованием VBA и IE.

Этот код выбирает ОДИН элемент в комбоbox

Set frm = HTMLDoc.getElementsByName("UFG.USER_TYPES")(0)
   frm.Value = "AUT"

Однако, когда я пытаюсь выбрать несколько элементов, он просто выбирает последний, а не все.

Вот код с веб-страницы


    <p  id="DispFormCollapsible.Rc10"class="formrow" >
    <span  id="DispFormCollapsible.Rc10.C1"  class="querytextleft">
    <label for="UFG.USER_TYPES" id="LabelForContro123"class = "simpletext" >
    Accessible Types:<span class="redstar">*</span></label></span>
    <span  id="DispFormCollapsible.Rc10.C2"  class="querytextright">
    <span class="labelColumn_combo">
    <span class="labelColumn_combi_brdr"> 
    <select  name= "UFG.USER_TYPES" multiple= "true" class = "dropdownexpandalbe"
     id="UFG.USER_TYPES" title = "Accessible Financial Transaction Types"> 
    <option value="AUT"   title="ACTIVE USER TYPE1" >TYPE1</option> 
    <option value="SET"   title="Selective User Type" >TYPE2</option> 
    <option value="TST"   title="Test User Type" >TEST3</option>
    </select></span></span>
    <input type ="hidden" name= "UFG.USER_TYPES" value="NULL" >
    </span></p>

Вот моя строка VBA для выбора элемента

Set frm = HTMLDoc.getElementsByName("UFG.USER_TYPES")(0)
   frm.Value = "AUT"

Что мне нужно сделать, это выбрать все «значения параметров» в выпадающем списке.Я думаю, что это должен быть массив, или каким-то другим способом.Я пытался искать, но у меня ничего не получается.Любая помощь приветствуется.Thx

Попробовал следующее, но получил ошибку 91 Блок не установлен.Я также пытался использовать значения "AUT" в дочерних элементах, и при этом я не получаю сообщение об ошибке, но ничего не выбирается.

With HTMLDoc.getElementsByName("Select")(0)
    .Children(1).Selected = True
    .Children(2).Selected = True
    .Children(3).Selected = True
End With

Также пробовал следующее, это нене выдает ошибку, но выбирает только первый вариант в списке.

With HTMLDoc.getElementsByName("UFG.USER_TYPES")(0)
    .Children(AUT).Selected = True
    .Children(SET).Selected = True
    .Children(TST).Selected = True
End With

Это странно, когда я использую этот код, он выбирает первые два в списке, но не третий.

With HTMLDoc.getElementsByName("UFG.USER_TYPES")(0)
    .Children(all).Selected = True
End With

1 Ответ

0 голосов
/ 03 апреля 2019
With HTMLDoc.getElementsByName("UFG.USER_TYPES")(0)
    .Children(0).Selected = True
    .Children(1).Selected = True
    .Children(2).Selected = True
End With

Приведенный выше код исправил это ... whoopie!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...