Example #1
1
        static void Main(string[] args)
        {
            RemoteWebDriver driver = null;
            string serverPath = "Microsoft Web Driver";
            try
            {
                if (System.Environment.Is64BitOperatingSystem)
                {
                    serverPath = Path.Combine(System.Environment.ExpandEnvironmentVariables("%ProgramFiles(x86)%"), serverPath);
                }
                else
                {
                    serverPath = Path.Combine(System.Environment.ExpandEnvironmentVariables("%ProgramFiles%"), serverPath);
                }

                // location for MicrosoftWebDriver.exe
                EdgeOptions options = new EdgeOptions();
                options.PageLoadStrategy = EdgePageLoadStrategy.Eager;
                driver = new EdgeDriver(serverPath, options);

                //Set page load timeout to 5 seconds
                driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(5));

                // Navigate to https://www.bing.com/
                driver.Url = "https://www.bing.com/";

                //// Find the search box and query for webdriver
                RemoteWebElement element = (RemoteWebElement)driver.FindElementById("sb_form_q");
                element.SendKeys("webdriver");
                element.SendKeys(Keys.Enter);

                // Wait for search result
                WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
                wait.Until(x => x.Title.Contains("webdriver"));

                Screenshot shot = driver.GetScreenshot();
                shot.SaveAsFile("output.png", ImageFormat.Png);

            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                if (driver != null)
                {
                    driver.Close();
                }
            }
        }
        static void Main(string[] args)
        {
            Console.Write("Release: ");
            var release = Console.ReadLine();

            Console.Write("Environment: ");
            var environment = Console.ReadLine();

            Console.Write("Cluster (optional):");
            var cluster = Console.ReadLine();

            Console.WriteLine("Starting Edge automation.");

            Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
            if (!string.IsNullOrWhiteSpace(UserConfig.Instance.ErrorLog)) {
                Trace.Listeners.Add(new TextWriterTraceListener(UserConfig.Instance.ErrorLog));
            }

            UserConfig.Instance.Reload();

            var now = DateTime.Now;
            var yearWeek = DateTimeFormatInfo.CurrentInfo.Calendar.GetWeekOfYear(now, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
            var releaseName = $"{now.ToString("yy")}.{yearWeek} {release}";
            var runDateAndHour = now.ToString("MM-dd-yyyy HH");

            try {
                var serverPath = Path.Combine(Environment.ExpandEnvironmentVariables($"{((Environment.Is64BitOperatingSystem) ? "%ProgramFiles(x86)%" : "%ProgramFiles%")}"), Properties.Settings.Default.WebDriverName);
                var options = new EdgeOptions { PageLoadStrategy = EdgePageLoadStrategy.Normal };

                var sites = UserConfig.Instance.Sites.Where(s => string.IsNullOrWhiteSpace(cluster) || s.Cluster.Equals(cluster, StringComparison.OrdinalIgnoreCase)).ToList();
                var pages = UserConfig.Instance.Pages.ToList();

                using (var driver = new EdgeDriver(serverPath, options)) {
                    //This doesn't seem to work yet?
                    //driver.Manage().Window.Maximize();
                    //driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 15));
                    for (var s = 0; s < sites.Count(); s++) {
                        var site = sites[s];
                        Console.WriteLine("------------------------------------");
                        Console.WriteLine($"Site {s+1} of {sites.Count()}");
                        Console.WriteLine();
                        Console.WriteLine(site.Name);
                        foreach (Page page in pages) {
                            try {
                                Console.WriteLine($"    {page.Name}");
                                driver.Navigate().GoToUrl($"{site.BaseUrl}{page.Suffix}");
                                Thread.Sleep(5000);
                                var imagePath = Path.Combine(UserConfig.Instance.ScreenShotPath, releaseName, environment, runDateAndHour, "Desktop", $"{site.Name} {page.Name} edge.png");
                                Directory.CreateDirectory(Path.GetDirectoryName(imagePath));
                                var screenshot = driver.GetScreenshot();
                                screenshot.SaveAsFile(imagePath, System.Drawing.Imaging.ImageFormat.Png);
                            } catch (Exception e) {
                                Trace.WriteLine(e.Message);
                            }
                        }
                        Console.WriteLine();
                    }
                }
            } catch (Exception e) {
                Trace.WriteLine(e.Message);
            }

            Console.WriteLine("That's all folks! Press enter to close this window.");
            Console.ReadLine();
        }