示例#1
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. ");
        }
        public void ShouldNotDetectErrorsInWorkingPage()
        {
            using (IWebDriver driver = BuildFFDriver())
            {
                driver.Navigate().GoToUrl(urlUnbrokenHtml);

                IList <JavaScriptError> jsErrors = JavaScriptError.ReadErrors(driver);
                Assert.AreEqual(0, jsErrors.Count);
            }
        }
示例#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);
            }
        }
        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);
            }
        }
示例#9
0
 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));
 }