Обработка Select2 с помощью веб-драйвера SeleniumC#

Место общения программистов C#
Anonymous
Обработка Select2 с помощью веб-драйвера Selenium

Сообщение Anonymous »

Я бился головой о стену, пытаясь выбрать опцию из списка выбора select2 с поддержкой ajax с помощью веб-драйвера selenium. Мне удалось заставить его работать с веб-драйвером IE, но не с Firefox. Вот мое хакерское решение для IE

Код: Выделить всё

 public static void SetSelect2Option(this IWebDriver driver, By locator, string subContainerClass, string searchTerm, TimeSpan? ajaxWaitTimeSpan = null)
{
var select2Product = driver.FindElement(locator);
select2Product.Click();
var searchBox = driver.FindElement(By.CssSelector(subContainerClass + " .select2-input"));
searchBox.SendKeys(searchTerm);
if (ajaxWaitTimeSpan != null)
{
driver.Manage().Timeouts().ImplicitlyWait(ajaxWaitTimeSpan.Value);
}
var selectedItem = driver.FindElements(By.CssSelector(subContainerClass + " .select2-results li")).First();
selectedItem.Click();
selectedItem.SendKeys(Keys.Enter);
}
В Firefox это решение работает до момента вызова SendKeys, где оно просто зависает и переходит к следующему шагу, фактически не запуская события select2 для заполнения выбранного элемента. .

Я также устал использовать API http://code.google.com/p/selenium/wiki/ ... teractions с аналогичными результатами.

Кто-нибудь раньше сталкивался с подобной проблемой?

Подробнее здесь: https://stackoverflow.com/questions/177 ... -webdriver

Вернуться в «C#»