public void ShouldHandleMultiSelect() { Actions actions = new Actions(ngDriver.WrappedDriver); GetPageContent("ng_multi_select.htm"); IWebElement element = ngDriver.FindElement(NgBy.Model("selectedValues")); // use core Selenium IList<IWebElement> options = new SelectElement(element).Options; IEnumerator<IWebElement> etr = options.Where(o => Convert.ToBoolean(o.GetAttribute("selected"))).GetEnumerator(); while (etr.MoveNext()) { Console.Error.WriteLine(etr.Current.Text); } foreach (IWebElement option in options) { // http://selenium.googlecode.com/svn/trunk/docs/api/dotnet/html/AllMembers_T_OpenQA_Selenium_Keys.htm actions.KeyDown(Keys.Control).Click(option).KeyUp(Keys.Control).Build().Perform(); // triggers ngDriver.WaitForAngular() Assert.IsNotEmpty(ngDriver.Url); } // re-read select options element = ngDriver.FindElement(NgBy.Model("selectedValues")); options = new SelectElement(element).Options; etr = options.Where(o => Convert.ToBoolean(o.GetAttribute("selected"))).GetEnumerator(); while (etr.MoveNext()) { Console.Error.WriteLine(etr.Current.Text); } }