public static void AssertExternalLink([NotNull] IWebDriver driver, [NotNull] string linkId, [NotNull] string expectedTitleSubstring, bool newWindow = false, bool dismissAlertOnClose = false)
        {
            if (driver == null)
            {
                throw new ArgumentNullException(nameof(driver));
            }
            if (linkId == null)
            {
                throw new ArgumentNullException(nameof(linkId));
            }
            if (expectedTitleSubstring == null)
            {
                throw new ArgumentNullException(nameof(expectedTitleSubstring));
            }

            var originalWindowHandle  = driver.CurrentWindowHandle;
            var originalWindowHandles = driver.WindowHandles.ToArray();

            SeleniumExtensions.ClickById(driver, linkId);

            if (newWindow)
            {
                Console.WriteLine("Waiting for the new window to pop...");
                driver.WaitUntil(d => d.WindowHandles.Count == originalWindowHandles.Length + 1, "Could not verify new window/tab opening", TimeSpan.FromSeconds(10));

                Console.WriteLine("Switching to the new window...");
                driver.SwitchTo().Window(driver.WindowHandles.Except(originalWindowHandles).First());
            }

            SeleniumExtensions.WaitForPageTitle(driver, expectedTitleSubstring);

            if (newWindow)
            {
                Console.WriteLine("Closing the new window...");
                driver.Close();

                if (dismissAlertOnClose)
                {
                    driver.WaitUntil(ExpectedConditions.AlertIsPresent(), "alert expected");
                    driver.SwitchTo().Alert().Accept();
                }

                Console.WriteLine("Switching back to origin window...");
                driver.SwitchTo().Window(originalWindowHandle);
            }
            else
            {
                Console.WriteLine("Navigating back to HLTBS...");
                driver.Navigate().Back();

                SignInHelper.WaitForLoad(driver, WaitType.PageLoad);
            }
        }
 public static void AssertInternalLink([NotNull] IWebDriver driver, [NotNull] string linkId, [NotNull] string expectedTitleSubstring)
 {
     SeleniumExtensions.ClickById(driver, linkId);
     SeleniumExtensions.WaitForPageTitle(driver, expectedTitleSubstring);
     SignInHelper.WaitForLoad(driver, WaitType.PageLoad);
 }