public virtual Point SetPosition(Point pos) { logger_.Verbose("setting position of {0} to {1}", ScrolledElement, pos); var position = executor_.ExecuteScript(string.Format(SetPositionCommandFormat, pos.X, pos.Y), ScrolledElement); return(EyesSeleniumUtils.ParseLocationString(position)); }
public IList <FloatingMatchSettings> GetRegions(EyesBase eyesBase, EyesScreenshot screenshot) { ReadOnlyCollection <IWebElement> elements = ((SeleniumEyes)eyesBase).GetDriver().FindElements(selector_); IList <FloatingMatchSettings> retVal = new List <FloatingMatchSettings>(); foreach (IWebElement element in elements) { Rectangle r = EyesSeleniumUtils.GetVisibleElementBounds(element); Point pTag = screenshot.ConvertLocation(r.Location, CoordinatesTypeEnum.CONTEXT_RELATIVE, CoordinatesTypeEnum.SCREENSHOT_AS_IS); retVal.Add( new FloatingMatchSettings() { Left = pTag.X, Top = pTag.Y, Width = r.Width, Height = r.Height, MaxLeftOffset = maxLeftOffset_, MaxUpOffset = maxUpOffset_, MaxRightOffset = maxRightOffset_, MaxDownOffset = maxDownOffset_ } ); } return(retVal); }
public override void RenderStatusById(TaskListener <List <RenderStatusResults> > taskListener, IList <string> testIds, IList <string> renderIds) { List <RenderStatusResults> results = new List <RenderStatusResults>(); foreach (string renderId in renderIds) { List <VGRegion> selectorRegions = new List <VGRegion>(); JToken request = renderRequestsById_[renderId]; JToken selectors = request["selectorsToFindRegionsFor"]; if (selectors != null && selectors is JArray selectorsArr) { IWebDriver driver = driverProvider_.ProvideDriver(); foreach (JObject selectorToken in selectorsArr) { string selector = selectorToken["selector"].Value <string>(); IWebElement elem = driver.FindElement(By.XPath(selector)); Rectangle r = EyesSeleniumUtils.GetElementBounds(elem); selectorRegions.Add(new VGRegion() { X = r.X, Y = r.Y, Width = r.Width, Height = r.Height }); } } RenderStatusResults result = new RenderStatusResults() { RenderId = renderId, Status = RenderStatus.Rendered, ImageLocation = "http://image.some.url.com/" + renderId, SelectorRegions = selectorRegions.ToArray() }; results.Add(result); } taskListener.OnComplete(results); }
public IList <AccessibilityRegionByRectangle> GetRegions(IEyesBase eyesBase, IEyesScreenshot screenshot) { Rectangle r = EyesSeleniumUtils.GetVisibleElementBounds(element_); Point pTag = screenshot.ConvertLocation(r.Location, CoordinatesTypeEnum.CONTEXT_RELATIVE, CoordinatesTypeEnum.SCREENSHOT_AS_IS); return(new AccessibilityRegionByRectangle[] { new AccessibilityRegionByRectangle(new Rectangle(pTag, r.Size), regionType_) }); }
internal void SanitizeSettings(Logger logger, IWebDriver driver, bool isFully) { if (frameChain_.Count > 0 && targetElement_ == null && targetSelector_ == null && !isFully /* && * ((Applitools.Fluent.ICheckSettingsInternal)this).GetTargetRegion() == null*/) { FrameLocator lastFrame = frameChain_[frameChain_.Count - 1]; frameChain_.RemoveAt(frameChain_.Count - 1); targetElement_ = EyesSeleniumUtils.FindFrameByFrameCheckTarget(lastFrame, driver); logger.Log("Using Target.Frame() for the purpose of Target.Region()"); } }
public IList <IMutableRegion> GetRegions(IEyesBase eyesBase, IEyesScreenshot screenshot) { if (!(element_ is EyesRemoteWebElement eyesElement)) { eyesElement = new EyesRemoteWebElement(eyesBase.Logger, ((SeleniumEyes)eyesBase).GetDriver(), element_); } Rectangle r = EyesSeleniumUtils.GetVisibleElementBounds(eyesElement); Point pTag = screenshot.ConvertLocation(r.Location, CoordinatesTypeEnum.CONTEXT_RELATIVE, CoordinatesTypeEnum.SCREENSHOT_AS_IS); return(new MutableRegion[] { new MutableRegion(pTag.X, pTag.Y, r.Width, r.Height) }); }
public IList <AccessibilityRegionByRectangle> GetRegions(EyesBase eyesBase, EyesScreenshot screenshot) { ReadOnlyCollection <IWebElement> elements = ((SeleniumEyes)eyesBase).GetDriver().FindElements(selector_); IList <AccessibilityRegionByRectangle> retVal = new List <AccessibilityRegionByRectangle>(); foreach (IWebElement element in elements) { Rectangle r = EyesSeleniumUtils.GetVisibleElementBounds(element); Point pTag = screenshot.ConvertLocation(r.Location, CoordinatesTypeEnum.CONTEXT_RELATIVE, CoordinatesTypeEnum.SCREENSHOT_AS_IS); retVal.Add(new AccessibilityRegionByRectangle(new Rectangle(pTag, r.Size), regionType_)); } return(retVal); }
protected Size GetViewportSize() { EyesWebDriver driver = eyes_.GetDriver(); if (cachedViewportSize_ == null || cachedUrl_ != driver.Url) { cachedUrl_ = driver.Url; cachedViewportSize_ = EyesSeleniumUtils.GetViewportSize(logger_, driver); } Size originalViewportSize = cachedViewportSize_.Value; return(originalViewportSize); }
public IList <IMutableRegion> GetRegions(EyesBase eyesBase, EyesScreenshot screenshot) { EyesWebDriver driver = ((SeleniumEyes)eyesBase).GetDriver(); ReadOnlyCollection <IWebElement> elements = driver.FindElements(selector_); IList <IMutableRegion> mutableRegions = new List <IMutableRegion>(); foreach (IWebElement element in elements) { Rectangle r = EyesSeleniumUtils.GetVisibleElementBounds(element); Point pTag = screenshot.ConvertLocation(r.Location, CoordinatesTypeEnum.CONTEXT_RELATIVE, CoordinatesTypeEnum.SCREENSHOT_AS_IS); mutableRegions.Add(new MutableRegion(pTag.X, pTag.Y, r.Width, r.Height)); } return(mutableRegions); }
internal void SanitizeSettings(Logger logger, IWebDriver driver, CheckState state) { bool isFully = state.StitchContent; if (frameChain_.Count > 0 && targetElement_ == null && targetSelector_ == null && !isFully /* && * ((Applitools.Fluent.ICheckSettingsInternal)this).GetTargetRegion() == null*/) { FrameLocator lastFrame = frameChain_[frameChain_.Count - 1]; frameChain_.RemoveAt(frameChain_.Count - 1); targetElement_ = EyesSeleniumUtils.FindFrameByFrameCheckTarget(lastFrame, driver); state.FrameToSwitchTo = targetElement_; logger.Log(TraceLevel.Notice, Stage.Check, new { message = "Using Target.Frame() for the purpose of Target.Region()" }); } }
internal VisualGridEyes(ISeleniumConfigurationProvider configurationProvider, VisualGridRunner visualGridRunner) { ArgumentGuard.NotNull(visualGridRunner, nameof(visualGridRunner)); if (visualGridRunner.GetAllTestResultsAlreadyCalled) { throw new InvalidOperationException("Runner already returned its results"); } configProvider_ = configurationProvider; Logger = visualGridRunner.Logger; runner_ = visualGridRunner; IDebugResourceWriter drw = runner_.DebugResourceWriter; Ufg.IDebugResourceWriter ufgDrw = EyesSeleniumUtils.ConvertDebugResourceWriter(drw); debugResourceWriter_ = ufgDrw; }
public IList <FloatingMatchSettings> GetRegions(EyesBase eyesBase, EyesScreenshot screenshot) { Rectangle r = EyesSeleniumUtils.GetVisibleElementBounds(element_); Point pTag = screenshot.ConvertLocation(r.Location, CoordinatesTypeEnum.CONTEXT_RELATIVE, CoordinatesTypeEnum.SCREENSHOT_AS_IS); return(new FloatingMatchSettings[] { new FloatingMatchSettings() { Left = pTag.X, Top = pTag.Y, Width = r.Width, Height = r.Height, MaxLeftOffset = maxLeftOffset_, MaxUpOffset = maxUpOffset_, MaxRightOffset = maxRightOffset_, MaxDownOffset = maxDownOffset_ } }); }
public void TestCheckDefaultElementBiggerBody() { IWebDriver driver = SeleniumUtils.CreateChromeDriver(); try { driver.Url = "data:text/html,<html style=\"height:100vh\"><body><div style=\"height: 200vh\">Test</div></body></html>"; IWebElement root = EyesSeleniumUtils.GetDefaultRootElement(driver); Assert.AreEqual("body", root.TagName); driver.Url = "data:text/html,<!doctype HTML><html style=\"height:100vh\"><body><div style=\"height: 200vh\">Test</div></body></html>"; root = EyesSeleniumUtils.GetDefaultRootElement(driver); Assert.AreEqual("html", root.TagName); } finally { driver.Quit(); } }
public override Bitmap GetImage() { logger_.Verbose("Getting current position..."); Point loc; double scaleRatio = eyes_.DevicePixelRatio; FrameChain currentFrameChain = eyes_.GetDriver().GetFrameChain(); IPositionProvider positionProvider = null; if (currentFrameChain.Count == 0) { IWebElement scrollRootElement = eyes_.GetCurrentFrameScrollRootElement(); positionProvider = eyes_.GetPositionProvider(logger_, StitchModes.Scroll, jsExecutor_, scrollRootElement, userAgent_); loc = positionProvider.GetCurrentPosition(); } else { loc = currentFrameChain.GetDefaultContentScrollPosition(); } Point scaledLoc = new Point((int)Math.Round(loc.X * scaleRatio), (int)Math.Round(loc.Y * scaleRatio)); Bitmap image = base.GetImage(); EyesWebDriver driver = eyes_.GetDriver(); RectangleSize originalViewportSize = EyesSeleniumUtils.GetViewportSize(logger_, driver); RectangleSize viewportSize = originalViewportSize.Scale(scaleRatio); if (image.Height > viewportSize.Height || image.Width > viewportSize.Width) { //Damn IE driver returns full page screenshot even when not asked to! logger_.Verbose("seems IE returned full page screenshot rather than only the viewport."); eyes_.DebugScreenshotProvider.Save(image, "IE"); if (!eyes_.IsCutProviderExplicitlySet) { Bitmap croppedImage = BasicImageUtils.Crop(image, new Rectangle(scaledLoc, viewportSize)); image.Dispose(); image = croppedImage; } } positionProvider?.SetPosition(loc); return(image); }
internal string GetDomCaptureAndPollingScriptResult_(string[] testIds) { string captureScript = userAgent_.IsInternetExplorer ? CAPTURE_DOM_FOR_IE : CAPTURE_DOM; string pollingScript = userAgent_.IsInternetExplorer ? POLL_RESULT_FOR_IE : POLL_RESULT; int chunkByteLength = userAgent_.IsiOS ? 10 * MB : 256 * MB; object arguments = new { chunkByteLength }; string result = null; try { result = EyesSeleniumUtils.RunDomScript(logger_, webDriver_, testIds, captureScript, arguments, arguments, pollingScript); } catch (Exception e) { CommonUtils.LogExceptionStackTrace(logger_, Stage.Check, StageType.DomScript, e, testIds); } return(result); }
private void Init(string suiteName) { TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException; int concurrentOpenSessions = ((IRunnerOptionsInternal)runnerOptions_).GetConcurrency(); suiteName_ = suiteName; if (suiteName_ == null) { StackFrame frame = new StackFrame(2); suiteName_ = frame.GetMethod().DeclaringType.Name; } IDictionary <string, RGridResource> resourcesCacheMap = ((IVisualGridRunner)this).ResourcesCacheMap; IDictionary <string, HashSet <string> > cachedResourceMapping = ((IVisualGridRunner)this).CachedResourceMapping; Ufg.IDebugResourceWriter drw = EyesSeleniumUtils.ConvertDebugResourceWriter(DebugResourceWriter); eyesServiceRunner_ = new EyesServiceRunner(Logger, ServerConnector, allEyes_, concurrentOpenSessions, drw, resourcesCacheMap, this, suiteName_); eyesServiceRunner_.Start(); }
internal static Point GetCurrentPosition(IEyesJsExecutor executor, IWebElement scrollRootElement) { var position = executor.ExecuteScript("return arguments[0].scrollLeft+';'+arguments[0].scrollTop;", scrollRootElement); return(EyesSeleniumUtils.ParseLocationString(position)); }