private IWebDriver BuildFFDriver()
        {
            FirefoxProfile ffProfile = new FirefoxProfile();

            JavaScriptError.AddExtension(ffProfile);
            return(new FirefoxDriver(ffProfile));
        }
示例#2
0
        /// <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. ");
        }
示例#3
0
        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);
            }
        }