Перейти к содержимому

Selenium WebDriver: полное руководство
онлайн, начало 19 октября
Логи как инструмент тестировщика
онлайн, начало 22 октября
Школа для начинающих тестировщиков
онлайн, начало 122 октября
Тестирование REST API
онлайн, начало 22 октября
Фотография

Выбор элемента из ComboBox


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 Vikonder

Vikonder

    Новый участник

  • Members
  • Pip
  • 30 сообщений

Отправлено 02 Май 2018 - 09:53

Камрады!

 

Пытаюсь использовать следующий метод выбора из ComboBox

    @Step(description = "select from combo list")
    public void selectFunctionFromList(By element) {
        List<WebElement> FunctionList = driver.findElements(element);
        if (FunctionList.size() > 0) {
            for (int i = 10; i < FunctionList.size(); i++) {
                Utilities.ElementdrawBorder(driver, element);
                FunctionList.get(i).click();
                logger.info("-------------------->  device is selected");
                break;
            }
        }
    }

где element метод получает в формате By.xpath("//*[contains(@class,'ui-select-choices')]")

При нормальном игдексе = 1 ничего из списка не выбирается...

Хотелось бы понять, почему индекс i=10 выбирает 1 элемент из списка?

 

Метода должна работать, как универсальная, так ComboBox имеет структуру домино и выбор одного устройства открывает другие ComboBox  (получается подобие графа)

 

Прикрепленный файл  SH_20 May. 02 09.04.jpg   24,26К   0 Количество загрузок:

 

Задача стоит, используя этот метод выбирать элементы 

 

FE code

 

<div ng-show="$select.open" class="ui-select-choices ui-select-dropdown selectize-dropdown ng-scope single" ng-class="{'single': !$select.multiple, 'multi': $select.multiple}" repeat="function in optionalFunction | filter: $select.search" style="opacity: 1;"><div class="ui-select-choices-content selectize-dropdown-content"><div class="ui-select-choices-group optgroup"><div ng-show="$select.isGrouped" class="ui-select-choices-group-label optgroup-header ng-binding ng-hide" ng-bind="$group.name"></div><!-- ngRepeat: function in $select.items --><!-- ngIf: $select.open --><div role="option" class="ui-select-choices-row ng-scope active" ng-class="{active: $select.isActive(this), disabled: $select.isDisabled(this)}" ng-repeat="function in $select.items" ng-if="$select.open" ng-click="$select.select(function,$select.skipFocusser,$event)" style=""><div class="option ui-select-choices-row-inner" data-selectable="" uis-transclude-append="">

                  <span ng-bind-html="function.name | highlight: $select.search" class="ng-binding ng-scope">10g server sfp</span>
                </div></div><!-- end ngIf: $select.open --><!-- end ngRepeat: function in $select.items --><!-- ngIf: $select.open --><div role="option" class="ui-select-choices-row ng-scope" ng-class="{active: $select.isActive(this), disabled: $select.isDisabled(this)}" ng-repeat="function in $select.items" ng-if="$select.open" ng-click="$select.select(function,$select.skipFocusser,$event)" style=""><div class="option ui-select-choices-row-inner" data-selectable="" uis-transclude-append="">
....

 


  • 0

#2 MissLeman

MissLeman

    Активный участник

  • Members
  • PipPip
  • 109 сообщений


Отправлено 02 Май 2018 - 13:22

Ну, возможно, по данному локатору находятся не только элементы списка, но и какие-то другие элементы, не кликабельные. Попробуйте вывести куда-нибудь в консоль FunctionList.size(), может станет понятнее. Или локатор переписать на более прицельный.


  • 0

#3 Vikonder

Vikonder

    Новый участник

  • Members
  • Pip
  • 30 сообщений

Отправлено 05 Май 2018 - 09:28

спасибо, разобрался...

HTML при построении UI автоматически сортирует списки, которые получает из DB.

Поэтому, список ComboBox приходит отсортированным, по внутреннему алгоритму  индекасации.

Как результат, список котрый выпадает не линейный и имеет индексы до сортировки.


  • 1


Selenium 2.0: стартовый уровень
онлайн, начало 9 ноября
Программирование на Java для тестировщиков
онлайн, начало 16 ноября
Автоматизация функционального тестирования
онлайн, начало 9 ноября
Selenium WebDriver: полное руководство
онлайн, начало 19 октября



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале