Как выбрать раскрывающееся значение для раскрывающегося без выбора в C # Селена Хромедрайвер? - PullRequest
0 голосов
/ 20 сентября 2019

Я использую хромовый драйвер селена в C #.У меня выпадающий без выбора тега.

Итак, как я могу выбрать значение?Мне удается выбрать раскрывающийся список и нажать его.но я не знаю, как получить значения и выбрать его.

Ценю вашу помощь.Спасибо.

Код для нажатия на выпадающий список:

 IWebElement dropdown_priority = driver.FindElement(By.XPath(".//div[@class='editor-col'][2]//div[@class='editor-field'][2]//child::span")); //select priority dropdown   

 dropdown_priority.Click();

Элемент HTML:

<div class="editor-field">        
<span title="" style="" class="k-widget k-dropdown k-header" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-owns="PriorityId_listbox" aria-disabled="false" aria-readonly="false" aria-busy="false" aria-activedescendant="98260767-707a-4bcc-a1b7-b44d4eeccf90">
<span unselectable="on" class="k-dropdown-wrap k-state-default">
<span unselectable="on" class="k-input">- Select -</span><span unselectable="on" class="k-select">
<span unselectable="on" class="k-icon k-i-arrow-s">select</span>
</span>
</span>
<input id="PriorityId" name="PriorityId" type="text" data-role="dropdownlist" style="display: none;" data-bind="value:PriorityId" aria-invalid="true" class="k-invalid">
</span>        
<div class="k-widget k-tooltip k-tooltip-validation k-invalid-msg field-validation-error" style="margin: 0.5em; display: block;" data-for="PriorityId" data-valmsg-for="PriorityId" id="PriorityId_validationMessage" role="alert">
<span class="k-icon k-warning"></span>
The Issue Priority field is required.
<div class="k-callout k-callout-n"></div>
</div>    
</div>

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

Я нашел решение, как показано ниже.

У меня выпадающий список с опцией (Не указывать, Низкий, Средний, Высокий).Успешно выбрать Среднее значение, используя приведенный ниже код.

    /*Create and initialize object*/
    IWebElement dropdown_priority = driver.FindElement(By.XPath(".//div[@class='editor-col'][2]//div[@class='editor-field'][2]//child::span//span[contains(@class, 'k-dropdown-wrap')]")); //select priority dropdown  

    dropdown_priority.Click(); // click priority dropdown, the dropdown selection will be displayed

    Thread.Sleep(500);

    /*Create and initialize object*/
    IWebElement optionsLists = driver.FindElement(By.XPath(".//*[@id='PriorityId_listbox']//li[3]")); //select value on index 3
    optionsLists.Click(); //click selected value
0 голосов
/ 20 сентября 2019

Прежде всего вам нужно получить пакет Selenium.Support в Nuget Package Manager

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

new SelectElement(driver.FindElement(By.XPath(".//div[@class='editor-col'][2]//div[@class='editor-field'][2]//child::span"))).SelectByIndex(1);
new SelectElement(driver.FindElement(By.XPath(".//div[@class='editor-col'][2]//div[@class='editor-field'][2]//child::span"))).SelectByText("YourSelection");
new SelectElement(driver.FindElement(By.XPath(".//div[@class='editor-col'][2]//div[@class='editor-field'][2]//child::span"))).SelectByValue("YourValue");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...