示例#1
0
        public void TestSuccess()
        {
            VisualGridRunner visualGridRunner = new VisualGridRunner(10);

            visualGridRunner.SetLogHandler(TestUtils.InitLogHandler());

            Size[] ViewportList =
            {
                new Size(800,  600),
                new Size(700,  500),
                new Size(1200, 800),
                new Size(1600, 1200)
            };

            IWebDriver webDriver = SeleniumUtils.CreateChromeDriver();

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

            try
            {
                foreach (Size viewport in ViewportList)
                {
                    eyes = InitEyes_(null, webDriver, viewport);
                    eyes.Check(Target.Window().Fully());
                    eyes.CloseAsync();

                    eyes = InitEyes_(visualGridRunner, webDriver, viewport);
                    eyes.Check(Target.Window().Fully());
                    eyes.CloseAsync();
                }
                TestResultsSummary results = visualGridRunner.GetAllTestResults();
                Assert.AreEqual(ViewportList.Length, results?.Count);
            }
            finally
            {
                webDriver?.Quit();
                eyes?.Abort();
            }
        }
示例#2
0
        public void Test_32176_Trello_1744()
        {
            ClassicRunner runner = new ClassicRunner();

            var driver = new ChromeDriver();

            var eyes = new Eyes(runner);

            eyes.StitchMode = StitchModes.CSS;
            //eyes.ForceFullPageScreenshot = true;
            eyes.SetLogHandler(new StdoutLogHandler(true));

            try
            {
                eyes.Open(driver, "GovIL", "#32176", new Size(1600, 600));

                driver.Url = "https://govforms.gov.il/mw/forms/[email protected]";

                driver.ExecuteScript("document.documentElement.style.overflow='hidden'; document.documentElement.style.transform='translate(0px, 0px)';document.body.style.overflow='visible';");

                eyes.Check("Tab 1", Target.Region(By.CssSelector("#user")).Fully());

                driver.FindElement(By.CssSelector("#Tab2")).Click();
                eyes.Check("Tab 2", Target.Region(By.CssSelector("#user")).Fully());

                //driver.FindElement(By.CssSelector("#Tab3")).Click();
                //eyes.Check("Tab 3", Target.Region(By.CssSelector("#user")));

                //driver.FindElement(By.CssSelector("#Tab4")).Click();
                //eyes.Check("Tab 4", Target.Region(By.CssSelector("#user")));

                eyes.CloseAsync();
            }
            finally
            {
                driver.Quit();

                runner.GetAllTestResults();
            }
        }
示例#3
0
        private static void DoTestConfig_ForceFullPageScreenshot_(Eyes eyes, [CallerMemberName] string testName = null)
        {
            IWebDriver webDriver = new ChromeDriver();

            try
            {
                webDriver.Url = "https://applitools.github.io/demo/TestPages/FramesTestPage/";

                eyes.ForceFullPageScreenshot = true;
                eyes.Open(webDriver, "test", testName, new System.Drawing.Size(1000, 700));
                eyes.Check(Target.Window());

                eyes.ForceFullPageScreenshot = false;
                eyes.Check(Target.Window());

                eyes.Close();
            }
            finally
            {
                webDriver.Quit();
            }
        }
示例#4
0
            public void BasicTest()
            {
                // 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. using the fluent API
                // https://applitools.com/docs/topics/sdk/the-eyes-sdk-check-fluent-api.html?Highlight=fluent%20api
                eyes.Check(Target.Window().Fully().WithName("Login Window"));

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

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

                // End the test.
                eyes.CloseAsync();
            }
        public void Trello_1722_LampsPlus()
        {
            Eyes eyes = new Eyes();

            eyes.StitchMode = StitchModes.CSS;
            TestUtils.SetupLogging(eyes);

            IWebDriver driver = new ChromeDriver();

            try
            {
                eyes.Open(driver, "LampsPlus", "Bug", new Size(800, 600));

                driver.Url = "https://www.lampsplus.com/products/juno-close-up-3-light-white-par30-floating-canopy-track-kit__68e68.html";

                // Visual checkpoint #1 - Check the login page.
                //eyes.CheckWindow("Login Page");
                var wait    = new WebDriverWait(driver, new TimeSpan(0, 0, 30));
                var element = wait.Until(ExpectedConditions.ElementIsVisible(By.Id("pdAddToCart")));

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

                element = wait.Until(ExpectedConditions.ElementIsVisible(By.Id("cartPromotionalCode")));
                driver.FindElement(By.Id("cartPromotionalCode")).Click();
                //element = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.ClassName("promoInput")));

                eyes.Check("Window", Target.Window().Fully().Ignore(By.Id("cartId")));
                eyes.Check("Region", Target.Region(By.Id("cartOverview")).Fully().Ignore(By.Id("cartId")));

                // End the test.
                eyes.Close(false);
            }
            finally
            {
                eyes.AbortIfNotClosed();
                driver.Quit();
            }
        }
示例#6
0
        //[Test]
        public void TestUFGVisualViewport_UnitTest()
        {
            JsonSerializer serializer = JsonUtils.CreateSerializer();
            IWebDriver     driver     = SeleniumUtils.CreateChromeDriver();
            EyesRunner     runner     = new VisualGridRunner(10);
            Eyes           eyes       = new Eyes(runner);

            TestUtils.SetupLogging(eyes);
            eyes.visualGridEyes_.EyesConnectorFactory = new Mock.MockEyesConnectorFactory();
            Configuration config        = eyes.GetConfiguration();
            IosDeviceInfo iosDeviceInfo = new IosDeviceInfo(IosDeviceName.iPhone_11_Pro);

            config.AddBrowser(iosDeviceInfo);
            eyes.SetConfiguration(config);
            try
            {
                eyes.Open(driver, "Eyes Selenium SDK", "Eyes Selenium SDK - UFG Visual Viewport Test");
                Mock.MockEyesConnector   mockEyesConnector   = (Mock.MockEyesConnector)eyes.visualGridEyes_.eyesConnector_;
                Mock.MockServerConnector mockServerConnector = new Mock.MockServerConnector(eyes.Logger, new Uri(eyes.ServerUrl));
                EyesConnector            eyesConnector       = new EyesConnector(eyes.Logger, new RenderBrowserInfo(iosDeviceInfo), config)
                {
                    runningSession_ = new RunningSession(),
                    ServerConnector = mockServerConnector
                };
                mockEyesConnector.WrappedConnector = eyesConnector;

                string inputJson = CommonUtils.ReadResourceFile("Test.Eyes.Selenium.DotNet.Resources.Misc.TestUFGVisualViewport_Input.json");
                RenderStatusResults renderStatusResults = serializer.Deserialize <RenderStatusResults>(inputJson);
                mockEyesConnector.SetRenderStatusResultsList(renderStatusResults);

                driver.Url = "https://applitools.github.io/demo/TestPages/DynamicResolution/desktop.html";
                eyes.Check(Target.Window().Fully());
                eyes.Close();

                runner.GetAllTestResults();

                Assert.AreEqual(1, mockServerConnector.MatchWindowCalls.Count);
                MatchWindowData matchWindowData = mockServerConnector.MatchWindowCalls[0];
                AppOutput       appOutput       = matchWindowData.AppOutput;
                Assert.AreEqual(980, appOutput.Viewport.Width);
                Assert.AreEqual(1659, appOutput.Viewport.Height);
                Assert.IsNotNull(mockEyesConnector.DeviceSize);
                Assert.AreEqual(375, mockEyesConnector.DeviceSize.Width);
                Assert.AreEqual(812, mockEyesConnector.DeviceSize.Height);
            }
            finally
            {
                eyes.AbortIfNotClosed();
                driver.Quit();
            }
        }
        public void IgnoreDisplacementsTest()
        {
            Eyes       eyes   = new Eyes();
            IWebDriver driver = SeleniumUtils.CreateChromeDriver();

            eyes.ForceFullPageScreenshot = true;

            Configuration conf = eyes.GetConfiguration();

            conf.IgnoreDisplacements = true;

            eyes.SetConfiguration(conf);

            eyes.Open(driver, "Ignore displacments", "test", new Size(800, 600));

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

            //eyes.Check("step", Target.Window().IgnoreDisplacements(true));
            eyes.Check("step", Target.Window());
            eyes.Check("step", Target.Window());
            eyes.Close(false);
            driver.Quit();
        }
示例#8
0
        private static void RunVisualTest(IWebDriver driver, Eyes eyes, string url, string appName, string testName)
        {
            ConfigureEyes(eyes);
            ConfigureUltrafastGrid(eyes);
            TestUtils.SetupLogging(eyes);

            driver.Url = url;

            eyes.Open(driver, appName, testName, new Size(1000, 600));

            eyes.Check(Target.Window());

            eyes.CloseAsync();
        }
示例#9
0
        private void Run()
        {
            // Create a new webdriver
            IWebDriver webDriver = new ChromeDriver();

            // Navigate to the url we want to test
            webDriver.Url = "https://pnc.com/";

            // Create a runner with concurrency of 10
            VisualGridRunner runner = new VisualGridRunner(10);

            runner.SetLogHandler(TestUtils.InitLogHandler(nameof(PNCDemo)));

            // Create Eyes object with the runner, meaning it'll be a Visual Grid eyes.
            Eyes eyes = new Eyes(runner);

            // Create SeleniumConfiguration.
            Selenium.Configuration sconf = new Selenium.Configuration();

            // Add browsers
            sconf.AddDeviceEmulation(DeviceName.Galaxy_S5);
            foreach (BrowserType b in Enum.GetValues(typeof(BrowserType)))
            {
                sconf.AddBrowser(700, 500, b);
                sconf.AddBrowser(800, 600, b);
                sconf.AddBrowser(900, 700, b);
                sconf.AddBrowser(1200, 800, b);
                sconf.AddBrowser(1600, 1200, b);
            }

            //sconf.AddDeviceEmulation(800, 640);

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

            // Call Open on eyes to initialize a test session
            eyes.Open(webDriver, "PNC Demo", "PNC Demo", new System.Drawing.Size(1000, 700));

            eyes.Check("PNC", Target.Window().Fully().SendDom()
                       .Layout(By.CssSelector("#main-header > div.highlighted-topics-tout-container-parsys.limited-parsys"))
                       .Layout(By.CssSelector("#main-header > div.promo-parsys.limited-parsys"))
                       .Ignore(By.CssSelector("#oo-feedback > img")));

            // Close the browser
            webDriver.Quit();

            // Close eyes and collect results
            TestResults        results        = eyes.Close();
            TestResultsSummary allTestResults = runner.GetAllTestResults();
        }
        public void Test(string testedUrl)
        {
            ChromeOptions options   = new ChromeOptions();
            IWebDriver    webDriver = new ChromeDriver(options);
            Logger        logger    = null;
            Eyes          eyes      = null;

            try
            {
                webDriver.Url = testedUrl;
                eyes          = InitEyes(webDriver, testedUrl);
                logger        = eyes.Logger;
                logger.Log("navigated to " + testedUrl);

                logger.Log("running check for url " + testedUrl);
                ICheckSettings windowCheckSettings = Target.Window();
                eyes.Check(windowCheckSettings.WithName("Step1 - " + testedUrl));
                eyes.Check(windowCheckSettings.Fully(false).WithName("Step2 - " + testedUrl));
            }
            catch (Exception e)
            {
                logger?.Log(e.ToString());
            }
            finally
            {
                webDriver.Quit();
            }

            Interlocked.Decrement(ref runningTasks_);
            logger_.Log("closed a browser. releasing waithandle. runningTasks: {0}", runningTasks_);
            waithandle_.Set();

            logger_.Verbose("calling eyes_.Close() (test: {0})", testedUrl);
            TestResults results = eyes?.Close();

            logger_.Verbose("exit");
        }
        public void TestFluent_WithIgnoreRegion()
        {
            Eyes eyes = Setup();

            eyes.Open("TestEyesImages", "CheckImage_WithIgnoreRegion_Fluent", new Size(1024, 768));
            eyes.Check("CheckImage_WithIgnoreRegion_Fluent", Target.Image(Path_("gbg1.png")).Ignore(new Rectangle(10, 20, 30, 40)));
            TestResults testResults    = Teardown(eyes);
            var         sessionResults = TestUtils.GetSessionResults(eyes.ApiKey, testResults);

            Assert.IsNotNull(sessionResults.ActualAppOutput);
            Assert.AreEqual(1, sessionResults.ActualAppOutput.Length);
            Assert.IsNotNull(sessionResults.ActualAppOutput[0].ImageMatchSettings.Ignore);
            Assert.AreEqual(1, sessionResults.ActualAppOutput[0].ImageMatchSettings.Ignore.Length);
            Assert.AreEqual(new Utils.Geometry.Region(10, 20, 30, 40), sessionResults.ActualAppOutput[0].ImageMatchSettings.Ignore[0]);
        }
示例#12
0
        public void TestSessionSummary_Status_Failed()
        {
            Eyes eyes = new Eyes();

            eyes.Batch        = TestDataProvider.BatchInfo;
            eyes.SaveNewTests = true;
            IWebDriver webDriver = SeleniumUtils.CreateChromeDriver();

            string guid = "_" + Guid.NewGuid();

            eyes.Open(webDriver, nameof(TestServerStatus) + guid, nameof(TestServerStatus) + guid, new Size(800, 600));
            webDriver.Url = "https://applitools.github.io/demo/TestPages/DynamicResolution/mobile.html";
            try
            {
                eyes.Check(nameof(TestSessionSummary_Status_Failed) + guid, Target.Window().Fully(false));
                eyes.Close(false);
            }
            finally
            {
                eyes.Abort();
            }

            eyes.Open(webDriver, nameof(TestServerStatus) + guid, nameof(TestServerStatus) + guid, new Size(800, 600));
            webDriver.Url = "https://applitools.github.io/demo/TestPages/DynamicResolution/desktop.html";
            try
            {
                eyes.Check(nameof(TestSessionSummary_Status_Failed) + guid, Target.Window().Fully(false));
                TestResults results = eyes.Close(false);
                Assert.IsTrue(results.IsDifferent);
            }
            finally
            {
                eyes.Abort();
                webDriver.Quit();
            }
        }
示例#13
0
        private static void TestScrollRegion_(Size?size)
        {
            // Open a Chrome browser.
            var driver = new ChromeDriver();

            // Initialize the eyes SDK and set your private API key.
            var eyes = new Eyes();

            //var eyes = new Eyes(new Uri("https://test2eyes.applitools.com"));
            //eyes.ApiKey = "XucYP13zAM2eWJE7EoyBiojebKA6D9xMucHuPHGMeQ4110";
            //scroll and take full page screenshot
            eyes.ForceFullPageScreenshot = true;

            // Hard code the Applitools API key or get it from the environment (see the Tutorial for details)
            //eyes.ApiKey = "0rQly9ew54FfJWfpSCG5wIWAj0LCtQ5HNPpatwRNFQc110";
            try
            {
                driver.Url = "https://qa.servicetitan.com/";

                driver.FindElement(By.CssSelector("#username")).SendKeys("applitools");
                driver.FindElement(By.CssSelector("#password")).SendKeys("1234");

                driver.FindElement(By.CssSelector("#loginButton")).Click();


                WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
                wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(By.CssSelector("#navbar > div.ui.inverted.menu.extra-navigation > a:nth-child(4) > i"))).Click();
                wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(By.CssSelector("#settingsMenu > button"))).Click();

                if (size.HasValue)
                {
                    eyes.Open(driver, "test", "check region", size.Value);
                }
                else
                {
                    eyes.Open(driver, "test", "check region");
                }
                eyes.Check("region", Target.Region(By.CssSelector("#settingsMenu")).Fully());
                eyes.Close();
            }
            finally
            {
                eyes.AbortIfNotClosed();
                driver.Quit();
            }
        }
示例#14
0
 private static TestResults RunTest_(bool fully, Eyes eyes, string testName, IWebDriver driver, string page)
 {
     try
     {
         driver.Url = $"https://applitools.github.io/demo/TestPages/DynamicResolution/{page}.html";
         eyes.Open(driver, "Eyes Selenium SDK - iOS Safari Cropping", testName);
         //eyes.Check("Initial view", Target.Region(By.CssSelector("div.page")).Fully(fully).SendDom(false));
         eyes.Check(Target.Window().Fully(fully));
         TestResults result = eyes.Close();
         return(result);
     }
     finally
     {
         eyes.Abort();
         driver.Quit();
     }
 }
示例#15
0
        public void TestSpecialRendering(string url, string testName)
        {
            string           logsPath   = TestUtils.InitLogPath();
            ILogHandler      logHandler = TestUtils.InitLogHandler(logPath: logsPath);
            VisualGridRunner runner     = new VisualGridRunner(30, logHandler);

            runner.DebugResourceWriter = new FileDebugResourceWriter(logsPath);

            Eyes eyes = new Eyes(runner);

            Configuration sconf = new Configuration();

            sconf.SetTestName(testName);
            sconf.SetAppName("Visual Grid Render Test");
            sconf.SetBatch(TestDataProvider.BatchInfo);

            sconf.AddDeviceEmulation(DeviceName.Galaxy_S5);
            sconf.AddBrowser(1200, 800, BrowserType.CHROME);
            sconf.AddBrowser(1200, 800, BrowserType.FIREFOX);

            // Edge doesn't support Shadow-DOM - returns an empty image.
            //sconf.AddBrowser(1200, 800, BrowserType.EDGE);

            // Internet Explorer doesn't support Shadow-DOM - fails to render and throws an error.
            //sconf.AddBrowser(1200, 800, BrowserType.IE_11);
            //sconf.AddBrowser(1200, 800, BrowserType.IE_10);

            eyes.SetConfiguration(sconf);
            ChromeDriver driver = SeleniumUtils.CreateChromeDriver();

            try
            {
                eyes.Open(driver);
                driver.Url = url;
                Thread.Sleep(500);
                eyes.Check(testName, Target.Window().Fully());
                eyes.Close(false);
                TestResultsSummary allResults = runner.GetAllTestResults(false);
            }
            finally
            {
                driver.Quit();
                eyes.AbortIfNotClosed();
                runner.StopServiceRunner();
            }
        }
 private void StitchEntirePageThenCheck(string name = "")
 {
     //close the pop up offer if it exists
     ClosePopUp();
     //scroll to the bottom of the page to force all of the dynamic elements to load
     ScrollToBottomOfPage();
     //scroll back to the top so that the full page screenshot capture starts at the right place
     ScrollToTopOfPage();
     //Eyes.Check(name, Target.Window().Fully());
     Eyes.MatchTimeout = TimeSpan.FromSeconds(3);
     //perform a visual checkpoint that uses the fluent API to capture a full page screenshot,
     //add a floating region, add a layout region, add a strict region. All applied at the element level
     Eyes.Check(name,
                Target.Window().Fully().Floating(SocialSharingToolbar, 180, 4035, 0, 17)
                .Layout(SocialSharingToolbar)
                .Strict(HeaderLocator));
 }
        public void TestDefaultRenderingOfMultipleTargets()
        {
            IWebDriver driver = SeleniumUtils.CreateChromeDriver();

            driver.Url = "https://applitools.com/helloworld";
            VisualGridRunner runner = new VisualGridRunner(10);
            Eyes             eyes   = new Eyes(runner);
            Configuration    config = eyes.GetConfiguration();

            config.AddBrowser(800, 600, BrowserType.CHROME);
            config.AddBrowser(800, 600, BrowserType.FIREFOX);
            config.AddBrowser(1200, 800, BrowserType.CHROME);
            config.AddBrowser(1200, 800, BrowserType.FIREFOX);
            config.SetAppName(nameof(TestDefaultRendering)).SetTestName(nameof(TestDefaultRenderingOfMultipleTargets));
            eyes.SetConfiguration(config);
            try
            {
                eyes.Open(driver);
                eyes.Check(Target.Window());
                eyes.Close();
            }
            finally
            {
                eyes.Abort();
                driver.Quit();
            }
            TestResultsSummary allTestResults = runner.GetAllTestResults();
            string             batchId        = null;
            string             batchName      = null;

            foreach (TestResultContainer trc in allTestResults)
            {
                if (batchId == null)
                {
                    batchId = trc.TestResults.BatchId;
                }
                if (batchName == null)
                {
                    batchName = trc.TestResults.BatchName;
                }
                Assert.AreEqual(batchId, trc.TestResults.BatchId);
                Assert.AreEqual(batchName, trc.TestResults.BatchName);
            }
        }
        public void Attentia()
        {
            // Open a Chrome browser.
            var driver = new ChromeDriver();

            // Initialize the eyes SDK and set your private API key.
            var eyes = new Eyes();

            eyes.SendDom = false;
            eyes.SetLogHandler(TestUtils.InitLogHandler());

            //Navigate to the URL
            driver.Url = "https://uat-dots.attentia.be";

            try
            {
                //Start the test
                var eyesDriver = eyes.Open(driver, "Attentia", "#29053", new Size(1200, 800));

                WebDriverWait wait = new WebDriverWait(eyesDriver, TimeSpan.FromSeconds(30));

                wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("#userNameInput"))).SendKeys("*****@*****.**");
                wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("#passwordInput"))).SendKeys("Azerty_03");
                wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("#submitButton"))).Click();

                eyes.Check(Target.Frame("appFrame").Fully());

                //Close the test
                eyes.Close();
            }
            catch (Exception e)
            {
                eyes.Logger.Log("Error: " + e);
            }
            finally
            {
                // Close the browser.
                driver.Quit();

                // If the test was aborted before eyes.Close was called, ends the test as aborted.
                eyes.Abort();
            }
        }
示例#19
0
        public void TestCloseBatch(bool dontCloseBatch)
        {
            IWebDriver driver = SeleniumUtils.CreateChromeDriver();
            // Initialize the VisualGridEyes SDK and set your private API key.
            EyesRunner runner = new ClassicRunner();

            runner.DontCloseBatches = dontCloseBatch;
            Eyes eyes = new Eyes(runner);

            TestUtils.SetupLogging(eyes);

            eyes.SendDom    = false;
            eyes.StitchMode = StitchModes.CSS;

            BatchInfo batchInfo = new BatchInfo("Runner Testing");

            eyes.Batch = batchInfo;

            // Navigate the browser to the "hello world!" web-site.
            driver.Url = "https://applitools.com/helloworld";
            BatchInfo batch;

            try
            {
                eyes.Open(driver, "Applitools Eyes SDK", "Classic Runner Test", new Size(1200, 800));
                eyes.Check(Target.Window().WithName("Step 1"));
                eyes.Close();
            }
            finally
            {
                driver.Quit();
            }

            batch = TestUtils.GetBatchInfo(eyes);
            Assert.IsFalse(batch.IsCompleted);

            runner.GetAllTestResults(false);

            Thread.Sleep(10000);

            batch = TestUtils.GetBatchInfo(eyes);
            Assert.AreEqual(!dontCloseBatch, batch.IsCompleted);
        }
        public void TestFullWindowInCorrectLocationAfterRetry()
        {
            WebDriverProvider       webdriverProvider      = new WebDriverProvider();
            IServerConnectorFactory serverConnectorFactory = new MockServerConnectorFactory(webdriverProvider);
            Eyes eyes = new Eyes(serverConnectorFactory);

            eyes.Batch = TestDataProvider.BatchInfo;
            TestUtils.SetupLogging(eyes);
            MockServerConnector mockServerConnector = (MockServerConnector)eyes.seleniumEyes_.ServerConnector;

            mockServerConnector.AsExpected = false;
            IWebDriver driver = SeleniumUtils.CreateChromeDriver();

            webdriverProvider.SetDriver(driver);
            driver.Url = "https://applitools.github.io/demo/TestPages/FramesTestPage/";
            try
            {
                eyes.Open(driver, "DotNet Tests", nameof(TestFullWindowInCorrectLocationAfterRetry), new Size(700, 460));
                driver.FindElement(By.TagName("input")).SendKeys("Different Input");
                eyes.Check(Target.Window().Fully());
                eyes.Close();
            }
            finally
            {
                eyes.AbortIfNotClosed();
                driver.Quit();
            }
            Assert.AreEqual(1, mockServerConnector.MatchWindowCalls.Count, "Matches");
            Assert.AreEqual(0, mockServerConnector.ReplaceMatchedStepCalls.Count, "Replacements");
            byte[] screenshotBytes = mockServerConnector.ImagesAsByteArrays[0];
            string finalImageHash  = screenshotBytes.GetSha256Hash();

            if (finalImageHash != "0EEBFD0FCDE40BA1FB5D4B8C4DA535F3C846B2E1685C84488E43FC6DC6ECD88A" && // Windows
                finalImageHash != "5E771AB31BA0D3232E370FDA5E630A649E0E03FA704243BBD288303B4D9064B3" && // Windows with different Antialiasing
                finalImageHash != "35D38A5CE5571F4D2AB4C543FB7CDB2EDC85A82C2472A8F062700637DE8BCF30" && // Windows, Chrome >= 87
                finalImageHash != "CAE9ADB9A45932BF9DEA51972A6B69908D012324E0CB4B2A93368CDD3C8E56D2" && // Linux, Chrome >=85
                finalImageHash != "993DB6CB4EC9D93AB5A7F0F598F179DADBB562A5E6A31BFAA6211C809BA5C9BB" && // Linux, Chrome >=87
                finalImageHash != "53CD94D4450FF82825C8B36A04E0BC68B32BACFB4F09019294D907AF0080F6E5")   // Linux, Chrome >=89
            {
                Assert.Fail("Different image than expected. Hash: {0}\nBase64:\n{1}\n", finalImageHash,
                            string.Join("\n", Convert.ToBase64String(screenshotBytes).Split(160)));
            }
        }
示例#21
0
        public void ServiceTitan()
        {
            Eyes eyes = new Eyes();

            eyes.SendDom = true;

            IWebDriver driver = new ChromeDriver();

            driver.Url = "https://qa.servicetitan.com/Auth/Login";
            driver.FindElement(By.CssSelector("#username")).SendKeys("applitools");
            driver.FindElement(By.CssSelector("#password")).SendKeys("1234");
            driver.FindElement(By.CssSelector("#loginButton")).Click();

            eyes.Open(driver, "ServiceTitan", "test ServiceTitan", new Size(1000, 800));
            eyes.Check("step1", Target.Window().Fully());

            eyes.Close(false);
            driver.Quit();
        }
示例#22
0
        public void TestUFGVisualViewport()
        {
            JsonSerializer serializer = JsonUtils.CreateSerializer();
            IWebDriver     driver     = SeleniumUtils.CreateChromeDriver();
            EyesRunner     runner     = new VisualGridRunner(10);
            Eyes           eyes       = new Eyes(runner);

            TestUtils.SetupLogging(eyes);
            Configuration config        = eyes.GetConfiguration();
            IosDeviceInfo iosDeviceInfo = new IosDeviceInfo(IosDeviceName.iPhone_11_Pro);

            config.AddBrowser(iosDeviceInfo);
            eyes.SetConfiguration(config);
            try
            {
                eyes.Open(driver, "Eyes Selenium SDK", "Eyes Selenium SDK - UFG Visual Viewport Test");

                string inputJson = CommonUtils.ReadResourceFile("Test.Eyes.Selenium.DotNet.Resources.Misc.TestUFGVisualViewport_Input.json");
                RenderStatusResults renderStatusResults = serializer.Deserialize <RenderStatusResults>(inputJson);

                driver.Url = "https://applitools.github.io/demo/TestPages/DynamicResolution/desktop.html";
                eyes.Check(Target.Window().Fully());
                eyes.Close(false);

                TestResultsSummary resultsSummary = runner.GetAllTestResults(false);
                Assert.AreEqual(1, resultsSummary.Count);
                TestResults    results        = resultsSummary[0].TestResults;
                SessionResults sessionResults = TestUtils.GetSessionResults(eyes.ApiKey, results);

                Assert.AreEqual(1, sessionResults.ActualAppOutput.Length);
                ActualAppOutput appOutput = sessionResults.ActualAppOutput[0];
                Assert.AreEqual(980, appOutput.Image.Viewport.Width);
                Assert.AreEqual(1659, appOutput.Image.Viewport.Height);

                Assert.AreEqual(375, sessionResults.Env.DisplaySize.Width);
                Assert.AreEqual(812, sessionResults.Env.DisplaySize.Height);
            }
            finally
            {
                eyes.AbortIfNotClosed();
                driver.Quit();
            }
        }
        public void Trello_1846_Duda_32648()
        {
            Eyes eyes = new Eyes();

            TestUtils.SetupLogging(eyes);

            eyes.SendDom                 = false;
            eyes.MatchTimeout            = TimeSpan.Zero;
            eyes.ForceFullPageScreenshot = true;

            IWebDriver driver = SeleniumUtils.CreateChromeDriver();

            try
            {
                IWebDriver innerDriver = eyes.Open(driver, "Duda", "Duda Issue 3", new Size(937, 904));
                innerDriver.Url = "https://editor-sandbox.duda.co/login";
                innerDriver.FindElement(By.CssSelector("#j_username")).SendKeys("*****@*****.**");
                innerDriver.FindElement(By.CssSelector("body > div.signupBodyInner > div.signupBox > div > form > div:nth-child(2) > input[type=password]")).SendKeys("qwer7890");
                innerDriver.FindElement(By.CssSelector("body > div.signupBodyInner > div.signupBox > div > form > input")).Click();
                Thread.Sleep(1000);
                innerDriver.FindElement(By.CssSelector("div._draggable.freestylePopupBody.ui-draggable > div > div > div > span > span > svg")).Click();
                innerDriver.SwitchTo().Frame(0);
                innerDriver.FindElement(By.CssSelector("#trial-action")).Click();
                Thread.Sleep(1000);
                innerDriver.SwitchTo().DefaultContent();
                //By frame =  By.ClassName("OldDashboard-iframe-2bj");
                innerDriver.SwitchTo().Frame(0);
                By          scrollMain      = By.CssSelector("div.scrollable--main");
                By          scrollInner     = By.CssSelector("div.scrollableInner");
                By          region          = By.CssSelector("#accountPlanPopupWrapper > div > div > div > div.accountPlanContent > div > div > div");
                IWebElement scrollMainElem  = driver.FindElement(scrollMain);
                IWebElement scrollInnerElem = driver.FindElement(scrollInner);
                IWebElement regionElem      = driver.FindElement(region);
                eyes.Check("frame fully ", Target.Region(scrollInner).ScrollRootElement(scrollInner).Fully());
                innerDriver.SwitchTo().DefaultContent();
                eyes.Close();
            }
            finally
            {
                driver.Quit();
                eyes.AbortIfNotClosed();
            }
        }
示例#24
0
        public void GivenISeeTheText(string expectedHeaderText)
        {
            var runner                = new ClassicRunner();
            var eyes                  = new Eyes(runner);
            var configuration         = new Configuration();
            var driver                = Browser.Get();
            var navigationList        = new HomePage().NavigationLinksList;
            var navigationEnglishList = new HomePage().NavigationEnglishLists;

            eyes.ApiKey = "e1a30daWtG7TGDntETpQvN8WhA29muccCaXA6aFQMn8110";
            eyes.Open(driver, "Demo App", "Smoke Test");

            eyes.Check(" BBC Page", Target.Window().Ignore(navigationList).Ignore(navigationEnglishList));

            eyes.CloseAsync();

            //var currentText = new HomePage().Header.Text;
            //currentText.Should().NotBeEmpty( expectedHeaderText, "because the header text shoud be must be the same as expected" );
        }
        public void Ticket_1561_GovIL()
        {
            var driver = new ChromeDriver();
            var eyes   = new Eyes();

            eyes.SetLogHandler(new StdoutLogHandler());
            try
            {
                eyes.Open(driver, "GovIL", "#31542", new Size(1680, 895));
                driver.Url = "https://www.gov.il/he/departments/policies/26122019";
                eyes.Check("Step 1", Target.Region(By.CssSelector("#accordion-files")));
                eyes.Close();
            }
            finally
            {
                driver.Quit();
                eyes.AbortIfNotClosed();
            }
        }
示例#26
0
        public void TestWebsite(string website, string name)
        {
            VisualGridRunner runner = new VisualGridRunner(10);
            IWebDriver       driver = SeleniumUtils.CreateChromeDriver();
            Eyes             eyes   = InitEyes(driver, runner, website, 1000, 700, writeResources: true, verbose: true, testMethod: name);

            //Thread.Sleep(3000);
            try
            {
                eyes.Check(name, Target.Window().Fully());
                eyes.CloseAsync();
                runner.GetAllTestResults();
            }
            finally
            {
                eyes.Abort();
                driver.Quit();
            }
        }
        public void TestDelete()
        {
            IWebDriver driver = SeleniumUtils.CreateChromeDriver();
            Eyes       eyes   = new Eyes();

            eyes.Batch = TestDataProvider.BatchInfo;
            try
            {
                driver     = eyes.Open(driver, "TestSessionConnector", "TestSessionConnector", new Size(800, 600));
                driver.Url = "https://applitools.com/helloworld";
                eyes.Check("Hello!", Target.Window());
                TestResults results = eyes.Close();
                results.Delete();
            }
            finally
            {
                driver.Quit();
                eyes.Abort();
            }
        }
示例#28
0
        public void Task1()
        {
            VisualGridRunner runner = new VisualGridRunner(10);
            Eyes             eyes   = new Eyes(runner);

            try
            {
                SetUp(eyes);
                eyes.Open(_driver, "AppliFashion", "Task1", new Size(800, 600));
                eyes.Check(Target.Window().Fully().WithName("Cross-Device Elements Test"));
            }
            catch
            {
                eyes.AbortAsync();
            }
            finally
            {
                TearDown(_driver, runner);
            }
        }
示例#29
0
        public void TestPNC()
        {
            VisualGridRunner runner = new VisualGridRunner(10);
            IWebDriver       driver = SeleniumUtils.CreateChromeDriver();
            Eyes             eyes   = InitEyes(driver, runner, "https://www.pnc.com/", 1000, 700, false);

            try
            {
                eyes.Check("PNC", Target.Window().Fully().SendDom()
                           .Layout(By.CssSelector("#main-header > div.highlighted-topics-tout-container-parsys.limited-parsys"))
                           .Layout(By.CssSelector("#main-header > div.promo-parsys.limited-parsys"))
                           .Ignore(By.CssSelector("#oo-feedback > img")));
                eyes.CloseAsync();
                runner.GetAllTestResults();
            }
            finally
            {
                eyes.Abort();
                driver.Quit();
            }
        }
        public void TestTimeout()
        {
            //RenderingTask.pollTimeout_ = TimeSpan.FromSeconds(100);
            IWebDriver driver = SeleniumUtils.CreateChromeDriver();

            try
            {
                EyesRunner runner = new VisualGridRunner(10);
                Eyes       eyes   = new Eyes(runner);
                eyes.SetLogHandler(TestUtils.InitLogHandler());
                driver.Url = "https://applitools.com/helloworld";
                eyes.Batch = TestDataProvider.BatchInfo;
                eyes.Open(driver, "Timeout Test", "Visual Grid Timeout Test", new Size(1200, 800));
                eyes.Check(Target.Window().WithName("Test"));
                eyes.Close();
                runner.GetAllTestResults();
            }
            finally
            {
                driver.Quit();
            }
        }