Exemple #1
0
        public void Setup()
        {
            //Setup and Configure Selenium for Browser Automation
            var config = new ChromeConfig();

            new DriverManager().SetUpDriver(config);
            var options = new ChromeOptions();

            options.AddLocalStatePreference("download.prompt_for_download", false);
            But = new ChromeDriver(options);

            //Initialize the Runner for your test.
            _runner = new ClassicRunner();

            // Initialize the eyes SDK (IMPORTANT: make sure your API key is set in the APPLITOOLS_API_KEY env variable).
            Eyes = new Eyes(_runner);
            Eyes.SaveNewTests = true;

            //Open AppliTool's Eyes and start a test based on the method name
            Eyes.Open(But, "VisualAiRockstar", TestContext.CurrentContext.Test.MethodName, new Size(1440, 900));

            //Utilize the Batching Feature to group tests by their Class
            Eyes.Batch.Name = TestContext.CurrentContext.Test.ClassName;

            // Navigate to the end desired Url
            But.Url = "https://demo.applitools.com/hackathon.html";
        }
        public void TestDoubleOpenCheckCloseWithDifferentInstances(bool useVisualGrid)
        {
            IWebDriver driver = SeleniumUtils.CreateChromeDriver();

            driver.Url = "https://applitools.github.io/demo/TestPages/VisualGridTestPage/";

            EyesRunner runner = useVisualGrid ? (EyesRunner) new VisualGridRunner(10) : new ClassicRunner();

            runner.SetLogHandler(TestUtils.InitLogHandler());

            string suffix = useVisualGrid ? "_VG" : "";

            try
            {
                Eyes eyes1 = new Eyes(runner);
                eyes1.Batch = TestDataProvider.BatchInfo;
                eyes1.Open(driver, "Applitools Eyes SDK", nameof(TestDoubleOpenCheckCloseWithDifferentInstances) + suffix, new RectangleSize(1200, 800));
                eyes1.Check(Target.Window().Fully().IgnoreDisplacements(false).WithName("Step 1"));
                eyes1.Close(false);

                Eyes eyes2 = new Eyes(runner);
                eyes2.Batch = TestDataProvider.BatchInfo;
                eyes2.Open(driver, "Applitools Eyes SDK", nameof(TestDoubleOpenCheckCloseWithDifferentInstances) + suffix, new RectangleSize(1200, 800));
                eyes2.Check(Target.Window().Fully().IgnoreDisplacements(false).WithName("Step 2"));
                eyes2.Close(false);
            }
            finally
            {
                driver.Quit();
            }
            TestResultsSummary allTestResults = runner.GetAllTestResults(false);

            Assert.AreEqual(2, allTestResults.Count);
        }
        public void TestDoubleCheckDontGetAllResults(bool useVisualGrid)
        {
            IWebDriver driver = SeleniumUtils.CreateChromeDriver();

            driver.Url = "https://applitools.com/helloworld";

            EyesRunner runner = useVisualGrid ? (EyesRunner) new VisualGridRunner(10) : new ClassicRunner();

            runner.SetLogHandler(TestUtils.InitLogHandler());

            string suffix = useVisualGrid ? "_VG" : "";

            try
            {
                Eyes eyes1 = new Eyes(runner);
                eyes1.Batch = TestDataProvider.BatchInfo;
                eyes1.Open(driver, "Applitools Eyes SDK", nameof(TestDoubleCheckDontGetAllResults) + suffix, new RectangleSize(1200, 800));
                eyes1.Check(Target.Window().WithName("Step 1"));
                eyes1.Check(Target.Window().WithName("Step 2"));
                eyes1.Close(false);
            }
            finally
            {
                driver.Quit();
            }
        }
Exemple #4
0
 public Eyes()
 {
     runner_ = new ClassicRunner();
     configuration_.SetForceFullPageScreenshot(false);
     seleniumEyes_ = new SeleniumEyes(this, (ClassicRunner)runner_);
     activeEyes_   = seleniumEyes_;
 }
        public void TestCloseAsync(bool useVisualGrid)
        {
            IWebDriver  driver     = SeleniumUtils.CreateChromeDriver();
            string      logPath    = TestUtils.InitLogPath();
            ILogHandler logHandler = TestUtils.InitLogHandler(logPath: logPath);
            EyesRunner  runner     = useVisualGrid ? (EyesRunner) new VisualGridRunner(10, logHandler) : new ClassicRunner(logHandler);

            if (useVisualGrid && !TestUtils.RUNS_ON_CI)
            {
                ((VisualGridRunner)runner).DebugResourceWriter = new FileDebugResourceWriter(logPath);
            }
            Eyes eyes = new Eyes(runner);

            eyes.Batch = TestDataProvider.BatchInfo;
            try
            {
                driver.Url = "https://applitools.com/helloworld";
                eyes.Open(driver, nameof(TestApiMethods), nameof(TestCloseAsync) + "_1", new Size(800, 600));
                eyes.Check(Target.Window().WithName("step 1"));
                eyes.CloseAsync();
                driver.FindElement(By.TagName("button")).Click();
                eyes.Open(driver, nameof(TestApiMethods), nameof(TestCloseAsync) + "_2", new Size(800, 600));
                eyes.Check(Target.Window().WithName("step 2"));
                eyes.CloseAsync();
                runner.GetAllTestResults();
            }
            finally
            {
                driver.Quit();
            }
        }
        internal static void InitEyes(bool useVisualGrid, out IWebDriver driver, out EyesRunner runner, out Eyes eyes, [CallerMemberName] string testName = null)
        {
            driver = CreateChromeDriver();
            string      logPath;
            ILogHandler logHandler;

            if (useVisualGrid)
            {
                testName  += "_VG";
                logPath    = TestUtils.InitLogPath(testName);
                logHandler = TestUtils.InitLogHandler(testName, logPath);
                VisualGridRunner visualGridRunner = new VisualGridRunner(10, logHandler);
                if (!TestUtils.RUNS_ON_CI)
                {
                    visualGridRunner.DebugResourceWriter = new FileDebugResourceWriter(logPath);
                }
                runner = visualGridRunner;
            }
            else
            {
                logPath    = TestUtils.InitLogPath(testName);
                logHandler = TestUtils.InitLogHandler(testName, logPath);
                runner     = new ClassicRunner(logHandler);
            }
            eyes       = new Eyes(runner);
            eyes.Batch = TestDataProvider.BatchInfo;
        }
        public void BeforeTestSuite()
        {
            // 1. Create the runner that manages multiple tests
            if (useVisualGrid_)
            {
                runner = new VisualGridRunner(concurrentSessions);
            }
            else
            {
                runner = new ClassicRunner();
            }
            // continued below....
            // 2. Create a configuration object, we will use this when setting up each test
            suiteConfig = new Configuration();

            // 3. Set the various configuration values
            suiteConfig
            // 4. Add Visual Grid browser configurations
            .AddBrowser(900, 600, BrowserType.CHROME)
            .AddBrowser(1024, 786, BrowserType.CHROME)
            .AddBrowser(900, 600, BrowserType.FIREFOX)
            .AddBrowser(900, 600, BrowserType.IE_10)
            .AddBrowser(900, 600, BrowserType.IE_11)
            .AddBrowser(900, 600, BrowserType.EDGE)
            .AddDeviceEmulation(DeviceName.iPhone_4, Applitools.VisualGrid.ScreenOrientation.Portrait)
            .AddDeviceEmulation(DeviceName.Galaxy_S5, Applitools.VisualGrid.ScreenOrientation.Landscape)

            // 5. set up default Eyes configuration values
            .SetBatch(new BatchInfo(batchName))
            .SetAppName(appName)
            .SetViewportSize(new Applitools.Utils.Geometry.RectangleSize(viewPortWidth, viewPortHeight));
        }
Exemple #8
0
 internal Eyes(IServerConnectorFactory serverConnectorFactory)
 {
     runner_ = new ClassicRunner();
     configuration_.SetForceFullPageScreenshot(false);
     seleniumEyes_ = new SeleniumEyes(this, (ClassicRunner)runner_, serverConnectorFactory);
     activeEyes_   = seleniumEyes_;
 }
Exemple #9
0
        public void TestDoubleCheckDontGetAllResults(bool useVisualGrid)
        {
            IWebDriver driver = SeleniumUtils.CreateChromeDriver();

            driver.Url = "https://applitools.com/helloworld";

            string      suffix     = useVisualGrid ? "_VG" : "";
            ILogHandler logHandler = TestUtils.InitLogHandler(nameof(TestDoubleCheckDontGetAllResults) + suffix);
            EyesRunner  runner     = useVisualGrid ? (EyesRunner) new VisualGridRunner(10, logHandler) : new ClassicRunner(logHandler);

            try
            {
                Eyes eyes = new Eyes(runner);
                eyes.Batch = TestDataProvider.BatchInfo;
                eyes.Open(driver, "Applitools Eyes SDK", nameof(TestDoubleCheckDontGetAllResults) + suffix, new RectangleSize(1200, 800));
                eyes.Check(Target.Window().WithName("Step 1"));
                eyes.Check(Target.Window().WithName("Step 2"));
                eyes.Close(false);
            }
            finally
            {
                driver.Quit();
            }
            Assert.IsFalse(runner.GetAllTestResultsAlreadyCalled);
            (runner as VisualGridRunner)?.StopServiceRunner();
        }
        public void BeforeSuite()
        {
            visualGridRunner = new VisualGridRunner(concurrentSessions);
            visualGridRunner.SetLogHandler(TestUtils.InitLogHandler(nameof(TestEkbVg), verbose: false));
            visualGridRunner.Logger.Log("enter");
            batchInfo   = new BatchInfo("test EKB VG");
            suiteConfig = new Configuration();
            suiteConfig.AddBrowser(viewPortWidth, viewPortHeight, BrowserType.CHROME)
            .SetHideScrollbars(true)
            .SetHideCaret(true)
            .SetWaitBeforeScreenshots(10000)
            .SetAppName(appName)
            .SetViewportSize(new RectangleSize(viewPortWidth, viewPortHeight))
            .SetMatchTimeout(TimeSpan.FromSeconds(6))
            .SetBatch(batchInfo);

            visualGridRunner.Logger.Log("creating {0} chrome drivers", webDrivers.BoundedCapacity);

            for (int i = 0; i < webDrivers.BoundedCapacity; ++i)
            {
                webDrivers.Add(SeleniumUtils.CreateChromeDriver());
            }

            visualGridRunner.Logger.Log("createdg {0} chrome drivers", webDrivers.Count);
        }
Exemple #11
0
        public void GivenTest()
        {
            //Initialize the Runner for your test.
            runner = new ClassicRunner();

            // Initialize the eyes SDK (IMPORTANT: make sure your API key is set in the APPLITOOLS_API_KEY env variable).
            eyes = new Eyes(runner);

            // Use Chrome browser
            driver = new ChromeDriver();

            // Start the test by setting AUT's name, window or the page name that's being tested, viewport width and height
            eyes.Open(driver, "Demo App", "Smoke Test", new Size(800, 600));

            // Navigate the browser to the "ACME" demo app. To see visual bugs after the first run, use the commented line below instead.
            driver.Url = "https://demo.applitools.com/";
            //driver.Url = "https://demo.applitools.com/index_v2.html";

            // Visual checkpoint #1 - Check the login page.
            eyes.CheckWindow("Login Page");

            // This will create a test with two test steps.
            driver.FindElement(By.Id("log-in")).Click();

            // Visual checkpoint #2 - Check the app page.
            eyes.CheckWindow("App Window");

            // End the test.
            eyes.CloseAsync();
        }
        public static void SetupLogging(EyesRunner runner, [CallerMemberName] string testName = null, string path = null)
        {
            ILogHandler logHandler;

            if (!RUNS_ON_CI)
            {
                path       = path ?? InitLogPath(testName);
                logHandler = new FileLogHandler(Path.Combine(path, testName + ".log"), true, true);
                //if (eyes.runner_ is VisualGridRunner visualGridRunner)
                //{
                //    visualGridRunner.DebugResourceWriter = new FileDebugResourceWriter(path);
                //    ((VisualGridEyes)eyes.activeEyes_).debugResourceWriter_ = visualGridRunner.DebugResourceWriter;
                //}
            }
            else
            {
                logHandler = new NunitLogHandler(false);
            }

            if (logHandler != null)
            {
                runner.SetLogHandler(logHandler);
                logHandler.Open();
            }
        }
Exemple #13
0
 public Eyes(Uri serverUrl)
 {
     ArgumentGuard.NotNull(serverUrl, nameof(serverUrl));
     runner_ = new ClassicRunner();
     configuration_.SetForceFullPageScreenshot(false);
     seleniumEyes_ = new SeleniumEyes(this, serverUrl, (ClassicRunner)runner_);
     activeEyes_   = seleniumEyes_;
 }
        protected void initEyes(bool isVisualGrid, bool isCSSMode)
        {
            string      testName   = NUnit.Framework.TestContext.CurrentContext.Test.MethodName;
            ILogHandler logHandler = TestUtils.InitLogHandler(testName);

            runner = isVisualGrid ? (EyesRunner)(new VisualGridRunner(10, logHandler)) : new ClassicRunner(logHandler);
            eyes   = new Eyes(runner);
            initEyesSettings(isVisualGrid, isCSSMode);
        }
Exemple #15
0
        //[TestCase(true), TestCase(false)]
        public void HelloWorldTest(bool useVisualGrid)
        {
            IWebDriver webDriver = SeleniumUtils.CreateChromeDriver();

            webDriver.Url = "https://applitools.com/helloworld";

            EyesRunner runner = useVisualGrid ? (EyesRunner) new VisualGridRunner(10) : new ClassicRunner();

            runner.SetLogHandler(TestUtils.InitLogHandler());
            Eyes eyes = new Eyes(runner);

            Configuration sconf = eyes.GetConfiguration();

            string suffix = useVisualGrid ? "_VG" : "";

            // Set test name
            sconf.SetTestName("Hello World Demo" + suffix);

            // Set app name
            sconf.SetAppName("Hello World Demo");

            // Add browsers
            sconf.AddBrowser(800, 600, BrowserType.CHROME);
            sconf.AddBrowser(700, 500, BrowserType.FIREFOX);
            sconf.AddBrowser(1200, 800, BrowserType.IE_10);
            sconf.AddBrowser(1200, 800, BrowserType.IE_11);
            sconf.AddBrowser(1600, 1200, BrowserType.EDGE);

            // Set the configuration object to eyes
            eyes.SetConfiguration(sconf);

            try
            {
                // Call Open on eyes to initialize a test session
                eyes.Open(webDriver);

                // Add 2 checks
                eyes.Check(Target.Window().WithName("Step 1 - Viewport").Ignore(By.CssSelector(".primary")));
                eyes.Check(Target.Window().Fully().WithName("Step 1 - Full Page")
                           .Floating(By.CssSelector(".primary"), 10, 20, 30, 40)
                           .Floating(By.TagName("button"), 1, 2, 3, 4));

                webDriver.FindElement(By.TagName("button")).Click();

                // Add 2 checks
                eyes.Check(Target.Window().WithName("Step 2 - Viewport"));
                eyes.Check(Target.Window().Fully().WithName("Step 2 - Full Page"));

                // Close eyes and collect results
                eyes.Close();
            }
            finally
            {
                eyes.Abort();
                webDriver.Quit();
            }
        }
Exemple #16
0
        private Eyes InitEyes(IWebDriver driver, EyesRunner runner, string url, int width, int height, bool writeResources = false, bool verbose = true, [CallerMemberName] string testMethod = null)
        {
            Eyes eyes = InitEyesWithLogger(runner, writeResources, verbose, testMethod);

            ConfigureMultipleBrowsers(eyes);

            OpenEyes(driver, url, eyes, width, height, testMethod);
            return(eyes);
        }
Exemple #17
0
        private Eyes InitEyes_(string testName, ILogHandler logHandler, bool?forceFullPageScreenshot = null)
        {
            EyesRunner        runner             = null;
            string            testNameAsFilename = TestUtils.SanitizeForFilename(TestContext.CurrentContext.Test.FullName);
            string            expectedVGOutput   = null;
            WebDriverProvider webDriverProvider  = new WebDriverProvider();

            if (useVisualGrid_)
            {
                if (RUNS_ON_CI || USE_MOCK_VG)
                {
                    //eyes.Logger.Log("using VG mock eyes connector");
                    Assembly thisAssembly             = Assembly.GetCallingAssembly();
                    Stream   expectedOutputJsonStream = thisAssembly.GetManifestResourceStream("Test.Eyes.Selenium.DotNet.Resources.VGTests." + testNameAsFilename + ".json");
                    if (expectedOutputJsonStream != null)
                    {
                        using (StreamReader reader = new StreamReader(expectedOutputJsonStream))
                        {
                            expectedVGOutput = reader.ReadToEnd();
                        }
                        runner = new VisualGridRunner(10, null, new MockServerConnectorFactory(webDriverProvider), logHandler);
                    }
                }
            }

            runner = runner ?? (useVisualGrid_ ? (EyesRunner) new VisualGridRunner(10, logHandler) : new ClassicRunner(logHandler));

            Eyes eyes = new Eyes(runner);

            TestUtils.SetupDebugScreenshotProvider(eyes, testName);
            SpecificTestContextRequirements testContextReqs = new SpecificTestContextRequirements(eyes, testName);

            testDataByTestId_.Add(TestContext.CurrentContext.Test.ID, testContextReqs);
            testContextReqs.TestNameAsFilename = testNameAsFilename;
            testContextReqs.ExpectedVGOutput   = expectedVGOutput;
            testContextReqs.WebDriverProvider  = webDriverProvider;

            string serverUrl = Environment.GetEnvironmentVariable("APPLITOOLS_SERVER_URL");

            if (!string.IsNullOrEmpty(serverUrl))
            {
                eyes.ServerUrl = serverUrl;
            }

            if (forceFullPageScreenshot != null)
            {
                eyes.ForceFullPageScreenshot = forceFullPageScreenshot.Value;
            }

            eyes.HideScrollbars = true;
            eyes.StitchMode     = stitchMode_;
            eyes.SaveNewTests   = false;
            eyes.Batch          = TestDataProvider.BatchInfo;

            return(eyes);
        }
Exemple #18
0
        public void BeforeEach()
        {
            //Initialize the Runner for your test.
            runner = new ClassicRunner();

            // Initialize the eyes SDK (IMPORTANT: make sure your API key is set in the APPLITOOLS_API_KEY env variable).
            eyes = new Eyes(runner);

            // Use Chrome browser
            driver = new ChromeDriver();
        }
Exemple #19
0
 public Eyes(ILogHandler logHandler = null)
 {
     if (logHandler == null)
     {
         logHandler = NullLogHandler.Instance;
     }
     runner_ = new ClassicRunner(logHandler);
     configuration_.SetForceFullPageScreenshot(false);
     seleniumEyes_ = new SeleniumEyes(this, (ClassicRunner)runner_);
     activeEyes_   = seleniumEyes_;
 }
        private static void TearDown(IWebDriver driver, EyesRunner runner)
        {
            driver.Quit();

            // Wait and collect all test results
            // we pass false to this method to suppress the exception that is thrown if we
            // find visual differences
            TestResultsSummary allTestResults = runner.GetAllTestResults(false);

            // Print results
            Console.WriteLine(allTestResults);
        }
Exemple #21
0
 public Eyes(Uri serverUrl, ILogHandler logHandler = null)
 {
     ArgumentGuard.NotNull(serverUrl, nameof(serverUrl));
     if (logHandler == null)
     {
         logHandler = NullLogHandler.Instance;
     }
     runner_ = new ClassicRunner(logHandler);
     configuration_.SetForceFullPageScreenshot(false);
     seleniumEyes_ = new SeleniumEyes(this, serverUrl, (ClassicRunner)runner_);
     activeEyes_   = seleniumEyes_;
 }
Exemple #22
0
        private static EyesRunner CreateEyesRunnerWithMockServerConnector_(bool useVG, IWebDriver driver, ILogHandler logHandler)
        {
            WebDriverProvider webDriverProvider = new WebDriverProvider();

            webDriverProvider.SetDriver(driver);
            IServerConnectorFactory serverConnectorFactory = new MockServerConnectorFactory(webDriverProvider);
            EyesRunner runner = useVG
                ? (EyesRunner) new VisualGridRunner(10, null, serverConnectorFactory, logHandler)
                : new ClassicRunner(logHandler, serverConnectorFactory);

            return(runner);
        }
Exemple #23
0
        private Eyes InitEyes_(EyesRunner runner, IWebDriver driver, Size viewport, [CallerMemberName] string testName = null)
        {
            Eyes eyes = new Eyes(runner);

            Configuration sconf = new Configuration();

            sconf.SetBatch(TestDataProvider.BatchInfo);
            sconf.SetViewportSize(viewport);
            sconf.SetTestName(testName).SetAppName(nameof(TestRendersMatch));
            eyes.SetConfiguration(sconf);
            eyes.Open(driver);
            return(eyes);
        }
Exemple #24
0
        public void TestSetServerUrlAndApiKeyInRunner(bool useVG)
        {
            IWebDriver  driver     = SeleniumUtils.CreateChromeDriver();
            ILogHandler logHandler = TestUtils.InitLogHandler();
            EyesRunner  runner     = CreateEyesRunnerWithMockServerConnector_(useVG, driver, logHandler);

            runner.ServerUrl = "https://some.server.url.com";
            runner.ApiKey    = "someApiKey";

            Eyes eyes = new Eyes(runner);

            ValidateServerUrlAndApiKey_(driver, runner, eyes);
        }
Exemple #25
0
        private static Eyes InitEyesWithLogger(EyesRunner runner, bool writeResources = false, bool verbose = true, [CallerMemberName] string testMethod = null)
        {
            string logPath = TestUtils.InitLogPath(testMethod);

            if (writeResources && runner is VisualGridRunner visualGridRunner)
            {
                visualGridRunner.DebugResourceWriter = new FileDebugResourceWriter(logPath);
            }
            Eyes eyes = new Eyes(runner);

            eyes.SetLogHandler(TestUtils.InitLogHandler(testMethod, logPath, verbose));
            eyes.Batch = TestDataProvider.BatchInfo;
            return(eyes);
        }
        public void BeforeEach()
        {
            //Initialize the Runner for your test.
            runner = new ClassicRunner();

            // Initialize the eyes SDK (IMPORTANT: make sure your API key is set in the APPLITOOLS_API_KEY env variable).
            eyes = new Eyes(runner);

            // Use Chrome browser
            ChromeOptions options = new ChromeOptions();

            options.AddArgument("--headless");
            driver = new ChromeDriver(options);
        }
 public void SetUp()
 {
     driver = new ChromeDriver(appsettings.AppliTools.WebDriver)
     {
         Url = appsettings.AppliTools.DriverUrl,
     };
     logInPage = new LoginPage(driver);
     mainPage  = new MainPage(driver);
     runner    = new ClassicRunner();
     eyes      = new Eyes(runner)
     {
         ForceFullPageScreenshot = true,
     };
 }
 protected void initEyes(Boolean isVisualGrid, Boolean isCSSMode)
 {
     runner      = isVisualGrid ? (EyesRunner)(new VisualGridRunner(10)) : new ClassicRunner();
     eyes        = new Eyes(runner);
     eyes.HostOS = "Linux";
     eyes.Batch  = BatchInfo;
     if (!isVisualGrid)
     {
         eyes.StitchMode = isCSSMode ? StitchModes.CSS : StitchModes.Scroll;
     }
     eyes.BranchName       = "master";
     eyes.ParentBranchName = "master";
     //eyes.AddProperty("ForceFPS", eyes.ForceFullPageScreenshot ? "true" : "false");
     //eyes.AddProperty("Agent ID", eyes.FullAgentId);
     //eyes.HideScrollbars = true;
 }
Exemple #29
0
        public void LocalSetUp()
        {
            driver_     = SeleniumUtils.CreateChromeDriver();
            driver_.Url = "data:text/html,<p>Test</p>";
            runner_     = useVisualGrid_ ? (EyesRunner) new VisualGridRunner(10) : new ClassicRunner();
            eyes_       = new Eyes(runner_);
            eyes_.Batch = TestDataProvider.BatchInfo;
            string testName = useVisualGrid_ ? "Test Abort_VG" : "Test Abort";

            Configuration config = eyes_.GetConfiguration();

            config.AddBrowser(800, 600, BrowserType.CHROME);
            eyes_.SetConfiguration(config);

            eyes_.Open(driver_, testName, testName, new Size(1200, 800));
        }
 public void Setbatch()
 {
     //Set Batch
     _batchInfo = new BatchInfo("Visual Test")
     {
         Id = "Visual_test_batch"
     };
     //Initialize the Runner for your test.
     _runner = new ClassicRunner();
     // Initialize the eyes SDK (IMPORTANT: make sure your API key  is set in the APPLITOOLS_API_KEY env variable).
     _eyes = new Eyes(_runner)
     {
         ApiKey = Key,
         Batch  = _batchInfo,
         ForceFullPageScreenshot = true
     };
 }