/// <summary>
 /// Clicks on multiple random elements in list
 /// </summary>
 /// <param name="elements">Any HTML element</param>
 public static void ClickRandomElements(this IList <IWebElement> elements)
 {
     foreach (var item in elements)
     {
         if (SafeRandom.Next(0, 100) % 2 == 0)
         {
             item.ClickElement();
         }
     }
 }
 /// <summary>
 /// Enters date within given limit
 /// </summary>
 /// <param name="element">Inputs or other clearable element</param>
 /// <param name="minDays">Minimum limit to change date, if zero date can be today</param>
 /// <param name="maxDays">Maximum limit to change date</param>
 /// <param name="clear">Should be element cleared before entering the date?</param>
 public static void EnterRandomDate(this IWebElement element, int minDays, int maxDays, bool clear = true)
 {
     if (clear)
     {
         element.EnterText(DateTime.Today.AddDays(SafeRandom.Next(minDays, maxDays)).ToShortDateString());
     }
     else
     {
         element.SendKeys(DateTime.Today.AddDays(SafeRandom.Next(minDays, maxDays)).ToShortDateString());
     }
 }
        /// <summary>
        /// Enters path to .jpg or .png image in "/Testing files" directory
        /// This directory must be created manualy and some images must be present there
        /// </summary>
        /// <param name="element">Uploead file/image button</param>
        public static void EnterRandomImage(this IWebElement element)
        {
            var image = Path.GetFullPath(Directory.GetFiles(@"Testing Files").Where(r => r.Contains(".jpg") || r.Contains(".png")).OrderBy(i => SafeRandom.Next()).First());

            element.SendKeys(image);
        }
 /// <summary>
 /// Selects random element in selectbox by index within limit in selectbox
 /// </summary>
 /// <param name="element">Select element</param>
 /// <param name="min">Minimum index of element</param>
 /// <param name="max">Maximum index of element</param>
 public static void SelectRandomElement(this IWebElement element, int min, int max)
 {
     new SelectElement(element).SelectByIndex(SafeRandom.Next(min, max));
 }
 /// <summary>
 /// Selects random option in select box by index
 /// </summary>
 /// <param name="element">Select element</param>
 public static void SelectRandomElement(this IWebElement element)
 {
     new SelectElement(element).SelectByIndex(SafeRandom.Next(1, element.FindElements(By.TagName("option")).Count));
 }
        /// <summary>
        /// Clicks on random element in list with minimum and maximum position in list
        /// </summary>
        /// <param name="elements">Any HTML elements</param>
        /// <param name="min">Minimum position of element in list</param>
        /// <param name="max">Maximum position of element in list</param>
        public static void ClickRandomElement(this IList <IWebElement> elements, int max, int min = 0)
        {
            IWebElement element = elements[SafeRandom.Next(min, max)];

            element.ClickElement();
        }