Выбор элемента из выпадающего списка арии с помощью селена - PullRequest
0 голосов
/ 01 июля 2019

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

Я попытался выбрать поле ввода, а затем выбрать раскрывающийся список с помощью xpath, но, похоже, оно не работает.

        datacenter = "Boydton 5"
        elem = WebDriverWait(driver, 30).until(
            EC.presence_of_element_located((By.XPATH, "//*[@id='pageContent']/div/div/div[1]/div/shared-blade/div/div[1]/div/div/div/dc-picker/div/div[2]/input"))
        )
        print(elem)

        elem.click()


        #Select from dropdown
        elem = WebDriverWait(driver, 30).until(
            EC.presence_of_element_located((By.XPATH, "//*[@id=typeahead-31-8093']"))
        )
        elem.send_keys(datacenter)

Код поля ввода:

<input type="text" placeholder="Data Center" ng-  model="$ctrl.selectedDatacenterName" uib-typeahead="::datacenterAndColo as ::datacenterAndColos.DataCenter.name for datacenterAndColos in ::$ctrl.dcColoCatalogList | filter:$viewValue" class="form-control ng-pristine ng-valid ng-empty ng-touched" typeahead-min-length="0" typeahead-select-on-exact="true" typeahead-on-select="$ctrl.onDcSelection($item, $model, $label, $event)" ng-disabled="$ctrl.isLoading" aria-autocomplete="list" aria-expanded="false" aria-owns="typeahead-31-2065" style="">

Код выпадающего списка:

<ul class="dropdown-menu ng-isolate-scope ng-hide" ng-show="isOpen() &amp;&amp; !moveInProgress" ng-style="{top: position().top+'px', left: position().left+'px'}" role="listbox" aria-hidden="true" uib-typeahead-popup="" id="typeahead-31-2065" matches="matches" active="activeIdx" select="select(activeIdx, evt)" move-in-progress="moveInProgress" query="query" position="position" assign-is-open="assignIsOpen(isOpen)" debounce="debounceUpdate" style="top: 36px; left: 0px;">
    <!-- ngRepeat: match in matches track by $index -->
</ul>

...