/// <summary>
        /// Adds one or more ignore regions.
        /// </summary>
        /// <param name="element">An element to ignore when validating the screenshot.</param>
        /// <param name="elements">One or more elements to ignore when validating the screenshot.</param>
        /// <returns>An updated clone of this settings object.</returns>
        public SeleniumCheckSettings Ignore(IWebElement element, params IWebElement[] elements)
        {
            SeleniumCheckSettings clone = Clone_();

            clone.Ignore_(new SimpleRegionByElement(element));
            foreach (IWebElement elem in elements)
            {
                clone.Ignore_(new SimpleRegionByElement(elem));
            }
            return(clone);
        }
        /// <summary>
        /// Adds one or more ignore regions.
        /// </summary>
        /// <param name="selector">A selector representing a region to ignore when validating the screenshot.</param>
        /// <param name="selectors">One or more selectors representing regions to ignore when validating the screenshot.</param>
        /// <returns>An updated clone of this settings object.</returns>
        public SeleniumCheckSettings Ignore(By selector, params By[] selectors)
        {
            SeleniumCheckSettings clone = Clone_();

            clone.Ignore_(new SimpleRegionBySelector(selector));
            foreach (By sel in selectors)
            {
                clone.Ignore_(new SimpleRegionBySelector(sel));
            }
            return(clone);
        }
        /// <summary>
        /// Adds one or more ignore regions.
        /// </summary>
        /// <param name="element">An element to ignore when validating the screenshot.</param>
        /// <param name="elements">One or more elements to ignore when validating the screenshot.</param>
        /// <returns>An updated clone of this settings object.</returns>
        public SeleniumCheckSettings Ignore(IWebElement element, params IWebElement[] elements)
        {
            SeleniumCheckSettings clone = Clone_();

            clone.Ignore_(new SimpleRegionByElement(element));
            clone.fluentCode_.Append($".{nameof(Ignore)}({element}");
            foreach (IWebElement elem in elements)
            {
                clone.Ignore_(new SimpleRegionByElement(elem));
                clone.fluentCode_.Append($", {elem}");
            }
            clone.fluentCode_.Append(")");
            return(clone);
        }
        /// <summary>
        /// Adds one or more ignore regions.
        /// </summary>
        /// <param name="selector">A selector representing a region to ignore when validating the screenshot.</param>
        /// <param name="selectors">One or more selectors representing regions to ignore when validating the screenshot.</param>
        /// <returns>An updated clone of this settings object.</returns>
        public SeleniumCheckSettings Ignore(By selector, params By[] selectors)
        {
            SeleniumCheckSettings clone = Clone_();

            clone.Ignore_(new SimpleRegionBySelector(selector));
            clone.fluentCode_.Append($".{nameof(Ignore)}({selector}");
            foreach (By sel in selectors)
            {
                clone.Ignore_(new SimpleRegionBySelector(sel));
                clone.fluentCode_.Append($", {sel}");
            }
            clone.fluentCode_.Append(")");
            return(clone);
        }
        /// <summary>
        /// Adds one or more ignore regions.
        /// </summary>
        /// <param name="elements">An enumerbale of elements to ignore when validating the screenshot.</param>
        /// <returns>An updated clone of this settings object.</returns>
        public SeleniumCheckSettings Ignore(IEnumerable <IWebElement> elements)
        {
            SeleniumCheckSettings clone = Clone_();

            foreach (IWebElement elem in elements)
            {
                clone.Ignore_(new SimpleRegionByElement(elem));
            }
            return(clone);
        }
        /// <summary>
        /// Adds one or more ignore regions.
        /// </summary>
        /// <param name="selectors">An enumerbale of selectors representing regions to ignore when validating the screenshot.</param>
        /// <returns>An updated clone of this settings object.</returns>
        public SeleniumCheckSettings Ignore(IEnumerable <By> selectors)
        {
            SeleniumCheckSettings clone = Clone_();

            foreach (By sel in selectors)
            {
                clone.Ignore_(new SimpleRegionBySelector(sel));
            }
            return(clone);
        }