Драйверы IE & Edge Selenium не могут найти элемент в раскрывающемся списке

Я пытаюсь выбрать элемент из выпадающего меню.

На моей странице все выпадающие элементы имеют размах и выглядят примерно так:

<span class="dropdownlist" id="MyID">
    <span class>Option 1</span>
    <span class>Option 2</span>
    <span class>Option 3</span>
    <span class>Option 4</span>

Потому что единственный идентификатор - это innerText (я не хочу использовать nth:childs). Я должен использовать XPath для сопоставления, что выглядит примерно так (я избегаю отметок ", поскольку я использую C#):

//*[@id=\"MyID\"]/span[text()=\"Option 1\"]

Когда я запускаю его с помощью Chrome Driver, он работает отлично. Однако, когда я использую IEDriver или EdgeDriver, ни один из них не может найти элемент в списке.

Все мои селекторы CSS (и некоторые текстовые XPath) до этого момента в моем тесте работали нормально, это просто выпадающее поле, которое вызывает мои проблемы.

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

ОБНОВЛЕНИЕ: я попытался использовать CssSelector, и это возвращает с ошибкой, говоря, что элемент в списке, который я пытаюсь щелкнуть, не отображается. Выполнение небольшого утверждения, чтобы проверить, отображается ли элемент перед щелчком, возвращает false.

ОБНОВЛЕНИЕ 2: я пытаюсь запустить какой-нибудь Java Script из моего кода, чтобы назначить ID элементу, а затем пытаюсь щелкнуть по нему с помощью этого, но я получаю ту же ошибку (опять же, этот метод работает в Chrome и ID назначается правильно)

Вот изображение элемента управления:

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

    dropDownField.Click();
    IWebElement listItemToSelect= 
        driver.FindElement(By.XPath("//span[text()=\"Bangkok\"]"));
                WebDriverWait wait = new WebDriverWait(driver, 
                       TimeSpan.FromSeconds(10));

  wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//span[text()=\"Bangkok\"]")));
        listItemToSelect.Click();

0 ответов

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