Выбрав значение из выпадающего списка 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, который будет находить элементы на основе общего идентификатора, затем создается список, и вы выполняете необходимое действие на основе индекса.

Другие вопросы по тегам