Выбрав значение из выпадающего списка Combobox, используя селен и C#
Я работаю над автоматизацией приложения с селеном и C#. Как выбрать значение из выпадающего списка?
HTML код:
<div ng-class="{deleted: row.entity.isDeleted, dirty: row.entity.isDirty()}" <div="" ng-repeat="col in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell ng-scope ui-grid-coluiGrid-000T dirty editable" ui-grid-cell="" tabindex="-1" aria-selected="true">
<div class="ui-grid-cell-contents ng-binding ng-scope ui-grid-cell-focus ui-grid-cell-contents-hidden">Medicare Advantage Plan</div><div ng-class="{deleted: row.entity.isDeleted, dirty: row.entity.isDirty()}" class="ng-scope dirty">
Я попробовал приведенный ниже код, и он не работает.
_context.WebDriver.FindElement(By.XPath("//div[@class='ui-grid-row ng-scope'][" + (i) + "]/div/div[3]")).SendKeys("Medicare Advantage Plan");
1 ответ
Вам необходимо создать список элементов раскрывающегося элемента, а затем по индексу вы можете получить к ним доступ. Чтобы создать список, вам нужно проверить выпадающие элементы и найти общий элемент, такой как id/name/xpath. Я сделал нечто подобное в Java, надеюсь, это поможет.
public void getList_ByXpath(String element, int list_index_to_click) {
try {
getWait().until(ExpectedConditions.visibilityOfElementLocated(By.xpath(element)));
WebElement web_el = getDriver().findElement(By.xpath(element));
Select select = new Select(web_el);
List<WebElement> option = select.getOptions();
option.get(list_index_to_click).click();
} catch (Exception e) {
}
}
Вам нужно создать WebElement, который будет находить элементы на основе общего идентификатора, затем создается список, и вы выполняете необходимое действие на основе индекса.