/// <summary> /// Checks the errors. /// </summary> /// <param name="url">The URL.</param> /// <exception cref="System.ApplicationException"></exception> private static void CheckErrors(string url) { FirefoxProfile profile = new FirefoxProfile(); DesiredCapabilities capabilities = DesiredCapabilities.Firefox(); profile.SetPreference("toolkit.startup.max_resumed_crashes", "-1"); capabilities.SetCapability(FirefoxDriver.ProfileCapabilityName, profile.ToBase64String()); JavaScriptError.AddExtension(profile); IWebDriver driver = new FirefoxDriver(profile); driver.Manage().Cookies.DeleteAllCookies(); driver.Navigate().Refresh(); driver.Manage().Window.Maximize(); driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(30)); driver.Url = url; Console.WriteLine("Analysing errors..."); IList <JavaScriptError> clientSideErrors = JavaScriptError.ReadErrors(driver); driver.Quit(); if (clientSideErrors.Any()) { foreach (JavaScriptError error in clientSideErrors) { Console.WriteLine(error); } throw new ApplicationException($"There are {clientSideErrors.Count()} javascript errors. "); } Console.WriteLine("No errors found. "); }
public void ShouldNotDetectErrorsInWorkingPage() { using (IWebDriver driver = BuildFFDriver()) { driver.Navigate().GoToUrl(urlUnbrokenHtml); IList <JavaScriptError> jsErrors = JavaScriptError.ReadErrors(driver); Assert.AreEqual(0, jsErrors.Count); } }
public void StartScreenshotting(object parameters) { var parameter = parameters as object[]; InstanceInfo instanceInfo = parameter[0] as InstanceInfo; DataTable urls = parameter[1] as DataTable; try { Log("Starting firefox..."); FirefoxProfile ffProfile = new FirefoxProfile(); JavaScriptError.AddExtension(ffProfile); using (var browser = new FirefoxDriver(ffProfile)) { string targetDirectory = CreateTargetDirectory(instanceInfo); List <JavaScriptError> jsErrors = new List <JavaScriptError>(); for (int i = 0; i < urls.Rows.Count; i++) { try { Guid nodeGuid = (Guid)urls.Rows[i]["NodeGUID"]; Uri url = new Uri(instanceInfo.Uri, "getdoc/" + nodeGuid); Log("Screenshotting [{0}/{1}]: {2}", i, urls.Rows.Count, nodeGuid); browser.Navigate().GoToUrl(url); string fileName = GetFileName(targetDirectory, browser.Url); browser.GetScreenshot() .SaveAsFile(fileName, ImageFormat.Jpeg); jsErrors.AddRange(JavaScriptError.ReadErrors(browser)); } catch (Exception e) { Log("Exception: {0}", e.Message); } } SaveJavaScriptErrorsToFile(jsErrors, targetDirectory); Log("Screenshotting finished."); browser.Close(); } } catch (WebDriverException ex) { // If the exception occurs, it's most probably because Firefox is not installed. Console.WriteLine(ex.Message); } }
public void ShouldDetectErrorsOnPage() { using (IWebDriver driver = BuildFFDriver()) { driver.Navigate().GoToUrl(urlSimpleHtml); IEnumerable <JavaScriptError> expectedErrors = new List <JavaScriptError>() { errorSimpleHtml }; IEnumerable <JavaScriptError> jsErrors = JavaScriptError.ReadErrors(driver); AssertErrorsEqual(expectedErrors, jsErrors); } }
public void ShouldDetectErrorsInExternalJS() { IEnumerable <JavaScriptError> expectedErrors = new List <JavaScriptError>() { errorExternalJs }; using (IWebDriver driver = BuildFFDriver()) { driver.Navigate().GoToUrl(urlWithExternalJs); IEnumerable <JavaScriptError> jsErrors = JavaScriptError.ReadErrors(driver); AssertErrorsEqual(expectedErrors, jsErrors); } }
public void ShouldDetectErrorsInPopup() { IEnumerable <JavaScriptError> expectedErrors = new List <JavaScriptError>() { errorPopupHtml }; using (IWebDriver driver = BuildFFDriver()) { driver.Navigate().GoToUrl(urlWithPopupHtml); driver.FindElement(By.TagName("button")).Click(); IEnumerable <JavaScriptError> jsErrors = JavaScriptError.ReadErrors(driver); AssertErrorsEqual(expectedErrors, jsErrors); } }
public void FirebugConsole_Simple() { string url = GetResource("withConsoleOutput.html"); JavaScriptError errorSimpleHtml = new JavaScriptError("TypeError: null has no properties", url, 8, "before JS error"); IEnumerable <JavaScriptError> expectedErrors = new List <JavaScriptError>() { errorSimpleHtml }; using (IWebDriver driver = BuildFFDriver()) { driver.Navigate().GoToUrl(url); IList <JavaScriptError> jsErrors = JavaScriptError.ReadErrors(driver); AssertErrorsEqual(expectedErrors, jsErrors); } }
public void ShouldAllowExplicitlySpecifyingXpiPath() { FirefoxProfile ffProfile = new FirefoxProfile(); JavaScriptError.AddExtension(ffProfile, xpiDirectory()); using (IWebDriver driver = new FirefoxDriver(ffProfile)) { driver.Navigate().GoToUrl(urlSimpleHtml); IEnumerable <JavaScriptError> expectedErrors = new List <JavaScriptError>() { errorSimpleHtml }; IEnumerable <JavaScriptError> jsErrors = JavaScriptError.ReadErrors(driver); AssertErrorsEqual(expectedErrors, jsErrors); } }
public void GetConsoleErrors() { //List<LogEntry> logs = driver.Manage().Logs.GetLog(LogType.Browser).ToList(); //foreach (LogEntry log in logs) //{ // while (logs.Count > 0) // { // String logInfo = log.ToString(); // ConsoleErr = ConsoleErr + log.Message.ToString(); // } // ConsoleErr = ConsoleErr + log.ToString(); //} Console.WriteLine("GetConsoleErrors ;"+ Convert.ToString(driver)); List<JavaScriptError> logs = JavaScriptError.ReadErrors(driver).ToList(); foreach (var log in logs) { ConsoleErr = ConsoleErr + log.ToString(); } Console.WriteLine("GetConsoleErrors : Finished"); }
/// <summary> /// Returns a collection of JavaScript errors (a plugin on the browser is needed) /// View https://github.com/protectedtrust/JSErrorCollector.NET for more information /// </summary> /// <param name="driver">The WebDriver instrance</param> /// <returns></returns> public static IEnumerable <JavaScriptError> GetJavaScriptErrors(this IWebDriver driver) { return(JavaScriptError.ReadErrors(driver)); }