Как получить все значения параметров из выпадающего списка, используя Selen Webdriver Java, когда элемент не является типом ввода ввода? - PullRequest
0 голосов
/ 04 октября 2018

В приложении отдела продаж.Все элементы не имеют правильного и статического идентификатора или имени или других свойств.

Мое требование - получить все значения из выпадающего списка в веб-приложении salesforce.

CSSотображается при проверке выпадающего списка в браузере Chrome:

<div data-aura-rendered-by="9529:0"><a aria-required="false" class="select" aria-disabled="false" aria-describedby="9520:0-label" aria-haspopup="true" tabindex="0" role="button" title="" data-aura-rendered-by="9530:0" href="javascript:void(0);" data-interactive-lib-uid="10">--None--</a></div>'

Отображается только уже выбранное значение.т.е. по умолчанию нет в моем приложении.

Я не могу видеть другие опции в этом разделе. Это не помогает мне получить значения.При проверке значений внутри выпадающего списка, он показывает HTML в другом месте

<div class="select-options" role="menu" data-aura-rendered-by="9542:0"><!--render facet: 9543:0--><ul class="scrollable" role="presentation" data-aura-rendered-by="9544:0"><!--render facet: 10751:0--><li role="presentation" data-aura-rendered-by="10755:0" class="uiMenuItem uiRadioMenuItem" data-aura-class="uiMenuItem uiRadioMenuItem"><a data-aura-rendered-by="10756:0" href="javascript:void(0);" role="menuitemradio" aria-disabled="false" tabindex="0" title="--None--" aria-checked="false"><b></b>--None--</a></li><li role="presentation" data-aura-rendered-by="10761:0" class="uiMenuItem uiRadioMenuItem" data-aura-class="uiMenuItem uiRadioMenuItem"><a data-aura-rendered-by="10762:0" href="javascript:void(0);" role="menuitemradio" aria-disabled="false" tabindex="0" title="Provider Concern / Question" aria-checked="false"><b></b>Provider Concern / Question</a></li><li role="presentation" data-aura-rendered-by="10767:0" class="uiMenuItem uiRadioMenuItem" data-aura-class="uiMenuItem uiRadioMenuItem"><a data-aura-rendered-by="10768:0" href="javascript:void(0);" role="menuitemradio" aria-disabled="false" tabindex="0" title="Provider No Show" aria-checked="false"><b></b>Provider No Show</a></li></ul></div>

Я пытался использовать приведенный ниже код для получения значений.но только получение пустых значений:

List<WebElement> subStatuses = driver.findElements(By.xpath("(.//div[@class='select-options popupTargetContainer uiPopupTarget uiMenuList uiMenuList--default uiMenuList--left uiMenuList--short'])[3]//li"));      
        System.out.println("size of the data list :: "+subStatuses.size()+"values:: "+subStatuses.toString());              
        for(WebElement e:subStatuses)
        {
            System.out.println("Values from Fsl dropdownlist"+e.getText().toString());
        }

Любая помощь по извлечению значений из этого раскрывающегося списка приветствуется ..!

1 Ответ

0 голосов
/ 05 октября 2018

Ваш xpath кажется неправильным: попробуйте что-то вроде этого:

List<WebElement> subStatuses = driver.findElements(By.xpath("//div[@class='select-options']/ul/li[contains(@class, 'uiMenuItem')]/a"));

Это должно сработать, если это единственный «выбор» на вашей странице.Если их несколько, вам может понадобиться указать, какой select-options-div в dom вы хотите, например, выбрав первое вхождение: //div[@class='select-options'][1]/ul/li[contains(@class, 'uiMenuItem')]/a и вместо getText ();вам, возможно, придется использовать element.getAttribute ('textContent');

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