Драйверы 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();