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); }
public void TestCreateDomSnapshotCollectsCookiesWhenDisabledUsingFluentApi() { IWebDriver driver = SeleniumUtils.CreateChromeDriver(); driver.Url = "http://applitools.github.io/demo/TestPages/CookiesTestPage/"; Eyes eyes = Setup(driver); VisualGridRunner runner = (VisualGridRunner)eyes.runner_; try { Configuration config = eyes.GetConfiguration(); config .SetAppName("test app").SetTestName("test name") .SetBatch(TestDataProvider.BatchInfo); eyes.SetConfiguration(config); EyesWebDriver eyesDriver = (EyesWebDriver)eyes.Open(driver); EyesWebDriverTargetLocator switchTo = (EyesWebDriverTargetLocator)eyesDriver.SwitchTo(); UserAgent userAgent = UserAgent.ParseUserAgentString(eyesDriver.GetUserAgent()); FrameData scriptResult = VisualGridEyes.CaptureDomSnapshot_( switchTo, userAgent, config, Target.Window().UseCookies(false), runner, eyesDriver, runner.Logger); Assert.IsNull(scriptResult.Cookies); Assert.IsNull(scriptResult.Frames[0].Cookies); Assert.IsNull(scriptResult.Frames[0].Frames[0].Cookies); } finally { driver.Quit(); eyes.AbortIfNotClosed(); runner.StopServiceRunner(); } }
public void TestWebsiteThatRequireScrolling(string website, string name) { VisualGridRunner runner = new VisualGridRunner(10); IWebDriver driver = SeleniumUtils.CreateChromeDriver(); Eyes eyes = InitEyesWithLogger(runner, writeResources: true, verbose: true, testMethod: name); ConfigureMultipleBrowsers(eyes); try { EyesWebDriver eyesWebDriver = (EyesWebDriver)OpenEyes(driver, website, eyes, 1000, 700, name);; EyesRemoteWebElement html = (EyesRemoteWebElement)eyesWebDriver.FindElement(By.TagName("html")); eyesWebDriver.ExecuteAsyncScript(@"var currScrollPosition = 0; let cb = arguments[arguments.length - 1] var interval = setInterval(function() { let scrollPosition = document.documentElement.scrollTop; currScrollPosition += 300; window.scrollTo(0, currScrollPosition); if (scrollPosition === document.documentElement.scrollTop) { clearInterval(interval); window.scrollTo(0, 0); cb() } }, 100); "); eyes.Check(name, Target.Window().Fully()); eyes.CloseAsync(); runner.GetAllTestResults(); } finally { eyes.Abort(); driver.Quit(); } }
public void TestVanguard() { VisualGridRunner runner = new VisualGridRunner(10); IWebDriver driver = SeleniumUtils.CreateChromeDriver(); Eyes eyes = InitEyes(driver, runner, "https://investor.vanguard.com/home/", 1000, 700, false); Thread.Sleep(2000); try { eyes.Check("Vanguard", Target .Window() .Fully() .Strict() .SendDom(false) .Layout(By.ClassName("vgc-feedbackLink")) ); eyes.CloseAsync(); runner.GetAllTestResults(); } finally { eyes.Abort(); driver.Quit(); } }
public void TestCloseAsync(bool useVisualGrid) { IWebDriver driver = SeleniumUtils.CreateChromeDriver(); EyesRunner runner = useVisualGrid ? (EyesRunner) new VisualGridRunner(10) : new ClassicRunner(); string logPath = TestUtils.InitLogPath(); runner.SetLogHandler(TestUtils.InitLogHandler(logPath: logPath)); 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(); } }
public void TestPandalytics() { VisualGridRunner runner = new VisualGridRunner(10); IWebDriver driver = SeleniumUtils.CreateChromeDriver(); Eyes eyes = InitEyesWithLogger(runner, verbose: true, writeResources: true); //ConfigureSingleBrowser(eyes); ConfigureMultipleBrowsers(eyes); try { EyesWebDriver eyesWebDriver = (EyesWebDriver)OpenEyes(driver, "https://pandalytics-sandbox.instructure.com", eyes, 1000, 700); driver.FindElement(By.Id("pseudonym_session_unique_id")).SendKeys("*****@*****.**"); driver.FindElement(By.Id("pseudonym_session_password")).SendKeys("password"); driver.FindElement(By.ClassName("Button--login")).Click(); eyes.Check("Dashboard page", Target.Window().Fully()); driver.Url = "https://pandalytics-sandbox.instructure.com/courses/17/external_tools/63"; Thread.Sleep(1000); eyes.Check("LTI tool", Target.Frame("tool_content").Fully()); eyes.CloseAsync(); runner.GetAllTestResults(); } finally { eyes.Abort(); driver.Quit(); } }
public void TestCheckRegionWithBadSelectorBeforeValidCheck(bool useVisualGrid) { SeleniumUtils.InitEyes(useVisualGrid, out IWebDriver driver, out EyesRunner runner, out Eyes eyes); driver.Url = "https://applitools.github.io/demo/TestPages/VisualGridTestPage/"; string suffix = useVisualGrid ? "_VG" : ""; eyes.Open(driver, "Applitools Eyes DotNet SDK", nameof(TestCheckRegionWithBadSelectorBeforeValidCheck) + suffix, new Size(1200, 800)); try { Assert.That(() => { eyes.CheckRegion(By.CssSelector("#element_that_does_not_exist")); driver.FindElement(By.Id("centered")).Click(); eyes.CheckRegion(By.Id("modal-content")); eyes.CloseAsync(); runner.GetAllTestResults(); }, Throws.Exception.With.InstanceOf <NoSuchElementException>().Or.With.InstanceOf <EyesException>().With.InnerException.With.InstanceOf <NoSuchElementException>()); } finally { eyes.AbortIfNotClosed(); driver.Quit(); if (runner is VisualGridRunner vgr) { vgr.StopServiceRunner(); } } }
/// <summary> /// Hovers over the window image of the input id. /// </summary> /// <param name="windowId"></param> /// <returns></returns> public ModelPage HoverOverWindow(string windowId) { SeleniumUtils.MoveToElement(Driver, GetWindowImageElement_(windowId)); Thread.Sleep(2000); return(this); }
public void BeatsByDre_HoverElement(bool bCheckHover) { string testName = "Hover Element (viewport)"; if (bCheckHover == true) { testName += " - On"; } else { testName += " - Off"; } Eyes eyes = new Eyes(); IWebDriver driver = SeleniumUtils.CreateChromeDriver(); string logPath = TestUtils.InitLogPath(); eyes.DebugScreenshotProvider = new FileDebugScreenshotProvider() { Path = logPath }; try { IWebDriver eyesDriver = eyes.Open(driver, testName, testName, new Size(1200, 600)); driver.Url = "https://www.beatsbydre.com/support/headphones/studio3-wireless"; ((ChromeDriver)driver).ExecuteScript("window.scrollBy(0,400)"); By selector = By.CssSelector( "#maincontent > div:nth-child(1) > div.supportContent.parbase.section > div > div > div.selector.topics > div.boxes > a:nth-child(1) > div > div.content"); eyes.CheckWindow("Window", false); //eyes.StitchMode = StitchModes.CSS; // Hover effect if (bCheckHover) { IWebElement we = eyesDriver.FindElement(selector); Actions action = new Actions(eyesDriver); action.MoveToElement(we).Perform(); } // End eyes.CheckWindow("Window 2", false); eyes.Check("Region", Target.Region(selector)); eyes.Close(); } finally { eyes.Abort(); driver.Quit(); } }
/// <summary> /// Clicks the image of the window of the specified id (closes the /// gallery page), and returns the page that opened this page. /// </summary> public void ClickImage(string windowId) { ArgumentGuard.NotNull(windowId, nameof(windowId)); SeleniumUtils.ClickAndMove( Driver, Driver.FindElement(By.CssSelector(CssSelector_(windowId)))); Thread.Sleep(500); }
/// <summary> /// Hovers over the image of the window of the specified id. /// </summary> /// <param name="windowId"></param> /// <returns></returns> public ModelWindowGalleryPage HoverOverImage(string windowId) { ArgumentGuard.NotNull(windowId, nameof(windowId)); SeleniumUtils.HoverOverElement( Driver, Driver.FindElement(By.CssSelector(CssSelector_(windowId)))); return(this); }
public void BrowserSizeTest() { IWebDriver webDriver = SeleniumUtils.CreateChromeDriver(); //webDriver.Url = "https://applitools.github.io/demo/TestPages/DynamicResolution/mobile.html"; Eyes eyes = new Eyes(new MockServerConnectorFactory()); eyes.SendDom = false; TestUtils.SetupLogging(eyes); eyes.Batch = TestDataProvider.BatchInfo; try { eyes.Open(webDriver, "Browser Size Test", "Browser Size Test", new Size(640, 480)); //eyes.Check("Test 1", Target.Window()); TestResults results1 = eyes.Close(false); eyes.Open(webDriver, "Browser Size Test", "Browser Size Test", new Size(800, 600)); //eyes.Check("Test 2", Target.Window()); TestResults results2 = eyes.Close(false); eyes.Open(webDriver, "Browser Size Test", "Browser Size Test", new Size(1024, 768)); //eyes.Check("Test 3", Target.Window()); TestResults results3 = eyes.Close(false); } finally { webDriver.Quit(); } try { ChromeOptions options = new ChromeOptions(); options.EnableMobileEmulation("iPhone 5/SE"); webDriver = SeleniumUtils.CreateChromeDriver(options); //webDriver.Url = "https://applitools.github.io/demo/TestPages/DynamicResolution/mobile.html"; eyes.Open(webDriver, "Browser Size Test", "Browser Size Test"); //eyes.Check("Test 4", Target.Window()); TestResults results4 = eyes.Close(false); } finally { webDriver.Quit(); } try { MockServerConnector server = (MockServerConnector)eyes.seleniumEyes_.ServerConnector; Assert.AreEqual(4, server.SessionIds.Count); Assert.AreEqual(new Size(640, 480), server.SessionsStartInfo[server.SessionIds[0]].Environment.DisplaySize.ToSize()); Assert.AreEqual(new Size(800, 600), server.SessionsStartInfo[server.SessionIds[1]].Environment.DisplaySize.ToSize()); Assert.AreEqual(new Size(1024, 768), server.SessionsStartInfo[server.SessionIds[2]].Environment.DisplaySize.ToSize()); Assert.AreEqual(new Size(320, 568), server.SessionsStartInfo[server.SessionIds[3]].Environment.DisplaySize.ToSize()); } finally { eyes.AbortIfNotClosed(); } }
/// <summary> /// Zooms in or out by turning the mouse wheel by the specified (positive /// or negative) delta. /// </summary> /// <param name="delta"></param> /// <returns></returns> public virtual ModelPage ZoomByMouseWheel(int delta) { ArgumentGuard.NotEquals(delta, 0, nameof(delta)); SeleniumUtils.ScrollElement( Driver, workingAreaWebElement_, delta * MousewheelScrollFactor_); WaitForZoomTransitionToEnd_(); return(this); }
private static void Main(string[] args) { var filePath = "Config.json"; var jsonStr = File.ReadAllText(filePath); var config = JsonConvert.DeserializeObject <Config>(jsonStr); var driver = new ChromeDriver(); SeleniumUtils.Register(driver, config); }
/// <summary> /// Opens the model window gallery by clicking the window gallery button. /// </summary> /// <returns></returns> public ModelWindowGalleryPage ClickGalleryButton() { SeleniumUtils.ClickAndMove( Driver, Driver.FindElement(By.Id(WindowGalleryButtonId_))); ModelWindowGalleryPage galleryPage = new ModelWindowGalleryPage(Driver); galleryPage.WaitUntilReady(); return(galleryPage); }
//[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(); } }
public ModelPage ClickWindowImage(string windowId) { var windowElement = GetWindowImageElement_(windowId); windowElement.Click(); SeleniumUtils.MoveToElement(Driver, windowElement, 0, -40); WaitForBirdViewNewRoot_(); return(this); }
/// <summary> /// Clicks on the middle of the control, and moves the cursor to the /// top left of the screen to avoid hover related problems. /// </summary> /// <param name="control"></param> /// <returns>Returns this page.</returns> public ModelWindowPage ClickControl(ModelControl control) { ArgumentGuard.NotNull(control, "control"); SeleniumUtils.ClickAndWait( Driver, Driver.FindElement(By.CssSelector(".ImageContainer")), control.Center, By.CssSelector(PageReadyIndicator_)); return(this); }
public void BeforeEachTest() { // 1. Create the Eyes instance for the test and associate it with the runner eyes = new Eyes(runner); // 2. Set the configuration values we set up in beforeTestSuite eyes.SetConfiguration(suiteConfig); // 3. Create a WebDriver for the test webDriver = SeleniumUtils.CreateChromeDriver(); }
/// <summary> /// Double clicks the image of the window of the input id. /// </summary> /// <param name="windowId"></param> /// <returns></returns> public ModelPage DoubleClickWindowImage(string windowId) { var windowElement = GetWindowImageElement_(windowId); SeleniumUtils.DoubleClick(Driver, windowElement); SeleniumUtils.MoveToElement(Driver, windowElement, 0, -40); ModelWindowPage windowPage = new ModelWindowPage(Driver); windowPage.WaitUntilReady(); return(windowPage); }
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); }
private void DoPlay(string trackPath) { string playXPath = "//a[@class='sc-button-play playButton sc-button m-stretch']"; SeleniumUtils.GoToUrl(this._webDriver, trackPath); try { IWebElement playButton = this._webDriver.FindElement(By.XPath(playXPath)); playButton.Click(); } catch (NoSuchElementException) { } }
//[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(); } }
private static TestObjects InitEyes_([CallerMemberName] string testName = null) { IWebDriver webDriver = SeleniumUtils.CreateChromeDriver(); webDriver.Url = "https://applitools.com/helloworld"; VisualGridRunner runner = new VisualGridRunner(10); Eyes eyes = new Eyes(runner); TestUtils.SetupLogging(eyes, testName); eyes.SendDom = false; TestObjects testObjects = new TestObjects(webDriver, runner, eyes); return(testObjects); }
public void TestFailure() { 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 { int resultsTotal = 0; foreach (Size viewport in ViewportList) { eyes = InitEyes_(null, webDriver, viewport); eyes.Check(Target.Window().Fully()); eyes.Close(); eyes = InitEyes_(visualGridRunner, webDriver, viewport); eyes.Check(Target.Window().Fully()); eyes.Close(); TestResultsSummary results = visualGridRunner.GetAllTestResults(); resultsTotal += results.Count; } Assert.AreEqual(4, resultsTotal); } catch (InvalidOperationException e) { if (e.Message.Equals("Eyes not open")) { Assert.Pass(); } } finally { webDriver?.Quit(); eyes?.Abort(); } }
public static bool TestMenuColorsLoad(FirefoxDriver browser, string webPage, string color, string bgcolor, out string message) { bool result = false; browser = new FirefoxDriver(); try { result = SeleniumUtils.TestMenuColorsLoad(browser, webPage, color, bgcolor, out message); } finally { browser.Quit(); } return(result); }
public static bool TestHeaderTextLoad(FirefoxDriver browser, string webPage, string webPageTitleImage) { bool result = false; browser = new FirefoxDriver(); try { result = SeleniumUtils.TestHeaderTextLoad(browser, webPage, webPageTitleImage); } finally { browser.Quit(); } return(result); }
public static bool TestMenuColorsLoad(ChromeDriver browser, string webPage, string color, string bgcolor, out string message) { bool result = false; browser = new ChromeDriver(@"C:\chromedriver_win32"); try { result = SeleniumUtils.TestMenuColorsLoad(browser, webPage, color, bgcolor, out message); } finally { browser.Quit(); } return(result); }
public static bool TestEmptyLogin(SafariDriver browser, string webPage, out string message) { bool result = false; browser = new SafariDriver(); try { result = SeleniumUtils.TestEmptyLogin(browser, webPage, out message); } finally { browser.Quit(); } return(result); }
public static bool TestTitleLoad(SafariDriver browser, string webPage, string webPageTitle) { bool result = false; browser = new SafariDriver(); try { result = SeleniumUtils.TestTitleLoad(browser, webPage, webPageTitle); } finally { browser.Quit(); } return(result); }