/// <summary> /// Deselects an item if it's selected. /// </summary> /// <param name="item"></param> /// <param name="stringComparison"></param> public virtual void DeselectItem(string item, StringComparison stringComparison = StringComparison.Ordinal) { var isSelected = GetSelectedOptions() .Any(opt => String.Equals( opt, item, stringComparison)); if (!isSelected) { return; } var elementToSelect = SelectedOptionElements.FirstOrDefault( e => String.Equals( e.TextHelper().InnerText, item, stringComparison)); // Verify the element exists. if (elementToSelect == null) { throw new NoSuchElementException(); } var deleteElement = elementToSelect .GetParentElement() .FindElement(deleteSelector); deleteElement.Click(); // Wait until the element is fully removed. WrappedDriver.Wait(TimeSpan.FromMilliseconds(500)) .Until( d => !GetSelectedOptions().Any( opt => String.Equals( opt, item, stringComparison))); }
/// <summary> /// Returns a list of all selected items. /// </summary> /// <returns></returns> public virtual IEnumerable <string> GetSelectedOptions() { return(SelectedOptionElements.Select(e => e.TextHelper().InnerText)); }