private IWebDriver BuildFFDriver() { FirefoxProfile ffProfile = new FirefoxProfile(); JavaScriptError.AddExtension(ffProfile); return(new FirefoxDriver(ffProfile)); }
/// <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 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); } }
private IWebDriver BuildFFDriver() { FirefoxProfile ffProfile = new FirefoxProfile(); JavaScriptError.AddExtension(ffProfile); ffProfile.AddExtension(SaveBinaryResource("firebug-2.0.8-fx.xpi", TestResources.firebug_2_0_8_fx)); ffProfile.SetPreference("extensions.firebug.showStackTrace", "true"); ffProfile.SetPreference("extensions.firebug.delayLoad", "false"); ffProfile.SetPreference("extensions.firebug.showFirstRunPage", "false"); ffProfile.SetPreference("extensions.firebug.allPagesActivation", "on"); ffProfile.SetPreference("extensions.firebug.console.enableSites", "true"); ffProfile.SetPreference("extensions.firebug.defaultPanelName", "console"); return(new FirefoxDriver(ffProfile)); }
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); } }