public IWebDriver DefaultContent() { logger_.Log(TraceLevel.Debug, Stage.General, StageType.Called); driver_.GetFrameChain().Clear(); targetLocator_.DefaultContent(); return(driver_); }
public IWebDriver DefaultContent() { logger_.Verbose("Switching to default content."); driver_.GetFrameChain().Clear(); targetLocator_.DefaultContent(); return(driver_); }
internal void HideCaret() { if (configuration_.HideCaret) { frameChain_ = driver_.GetFrameChain().Clone(); logger_.Verbose("Hiding caret. driver_.FrameChain.Count: {0}", frameChain_.Count); activeElement_ = driver_.ExecuteScript(HIDE_CARET); } }
internal void TryHideScrollbars(bool stitchContent, IWebElement scrollRootElement) { if (configuration_.HideScrollbars) { scrollRootElement_ = scrollRootElement; frameChain_ = driver_.GetFrameChain().Clone(); if (frameChain_.Count > 0) { FrameChain fc = frameChain_.Clone(); // for the target frame, we only wish to remove scrollbars when in "fully" mode. if (stitchContent) { Frame frame = fc.Peek(); frame.HideScrollbars(driver_); } RemoveScrollbarsFromParentFrames_(logger_, fc, driver_); } else { logger_.Verbose("hiding scrollbars of element: {0}", scrollRootElement); originalOverflow_ = EyesSeleniumUtils.SetOverflow("hidden", driver_, scrollRootElement); } logger_.Verbose("switching back to original frame"); ((EyesWebDriverTargetLocator)driver_.SwitchTo()).Frames(frameChain_); logger_.Verbose("done hiding scrollbars."); } else { logger_.Verbose("no need to hide scrollbars."); } }
public EyesWebDriverScreenshot(Logger logger, EyesWebDriver driver, Bitmap image, ScreenshotTypeEnum?screenshotType, Point?frameLocationInScreenshot) : base(image) { ArgumentGuard.NotNull(logger, nameof(logger)); ArgumentGuard.NotNull(driver, nameof(driver)); logger_ = logger; driver_ = driver; logger_.Verbose("enter"); UpdateScreenshotType_(screenshotType, image); IPositionProvider positionProvider; if (frameLocationInScreenshot == null || frameLocationInScreenshot.Value.IsEmpty) { IWebElement frameScrollRoot = driver.Eyes.GetCurrentFrameScrollRootElement(); positionProvider = driver.Eyes.GetPositionProvider(logger, driver.Eyes.StitchMode, driver, frameScrollRoot); logger_.Verbose("position provider: using the current frame scroll root element's position provider: {0}", positionProvider); } else if (driver.Eyes.CurrentFramePositionProvider != null) { positionProvider = driver.Eyes.CurrentFramePositionProvider; logger_.Verbose("position provider: using CurrentFramePositionProvider: {0}", positionProvider); } else { positionProvider = driver.Eyes.PositionProvider; logger_.Verbose("position provider: using PositionProvider: {0}", positionProvider); } //IPositionProvider positionProvider = driver.Eyes.CurrentFramePositionProvider ?? driver.Eyes.PositionProvider; frameChain_ = driver_.GetFrameChain(); logger_.Verbose("got frame chain. getting frame size..."); Size frameSize = GetFrameSize_(positionProvider); UpdateCurrentScrollPosition_(positionProvider); UpdateFrameLocationInScreenshot_(frameLocationInScreenshot); Size frameContentSize = GetFrameContentSize(); logger.Verbose("Calculating frame window..."); frameWindow_ = new Region(frameLocationInScreenshot_, frameContentSize); Region imageSizeAsRegion = new Region(0, 0, image.Width, image.Height); logger.Verbose("frameWindow_: {0} ; imageSizeAsRegion: {1}", frameWindow_, imageSizeAsRegion); frameWindow_.Intersect(imageSizeAsRegion); logger.Verbose("updated frameWindow_: {0}", frameWindow_); if (frameWindow_.Width <= 0 || frameWindow_.Height <= 0) { throw new EyesException("Got empty frame window for screenshot!"); } logger.Verbose("Done!"); }
internal void PreparePage(ISeleniumCheckTarget seleniumCheckTarget, Configuration config, IWebElement userDefinedSRE) { frameStates_ = new List <FrameState>(); originalFrameChain_ = driver_.GetFrameChain().Clone(); if (seleniumCheckTarget.GetTargetElement() != null || seleniumCheckTarget.GetTargetSelector() != null || seleniumCheckTarget.GetFrameChain().Count > 0) { PrepareParentFrames_(); } SaveCurrentFrameState_(frameStates_, driver_, userDefinedSRE); TryHideScrollbarsInFrame(config, driver_, userDefinedSRE); int switchedToFrameCount = SwitchToTargetFrame_(seleniumCheckTarget, config, frameStates_, userDefinedSRE); logger_.Verbose(nameof(switchedToFrameCount) + ": {0}", switchedToFrameCount); }
internal static FrameState GetCurrentFrameState(EyesWebDriver driver, IWebElement scrolledElement) { IJavaScriptExecutor jsExecutor = driver; Logger logger = driver.Eyes.Logger; UserAgent userAgent = UserAgent.ParseUserAgentString(driver.GetUserAgent()); IPositionProvider cssPositionProvider = SeleniumPositionProviderFactory.GetPositionProvider(logger, StitchModes.CSS, driver, scrolledElement, userAgent); IPositionProvider scrollPositionProvider = SeleniumPositionProviderFactory.GetPositionProvider(logger, StitchModes.Scroll, driver, scrolledElement, userAgent); string overflow = (string)jsExecutor.ExecuteScript("return arguments[0].style.overflow", scrolledElement); FrameChain frameChain = driver.GetFrameChain().Clone(); FrameState frameState = new FrameState(driver, scrolledElement, cssPositionProvider, scrollPositionProvider, overflow, frameChain); return(frameState); }
/// <summary> /// Create a frame(!) window screenshot /// </summary> /// <param name="logger"></param> /// <param name="driver"></param> /// <param name="image"></param> /// <param name="entireFrameSize"></param> public EyesWebDriverScreenshot(Logger logger, EyesWebDriver driver, Bitmap image, Size entireFrameSize, Point frameLocationInScreenshot) : base(image) { ArgumentGuard.NotNull(logger, nameof(logger)); ArgumentGuard.NotNull(driver, nameof(driver)); ArgumentGuard.NotNull(entireFrameSize, nameof(entireFrameSize)); logger_ = logger; driver_ = driver; frameChain_ = driver_.GetFrameChain(); // The frame comprises the entire screenshot. screenshotType_ = ScreenshotTypeEnum.ENTIRE_FRAME; currentFrameScrollPosition_ = new Point(0, 0); frameLocationInScreenshot_ = frameLocationInScreenshot; frameWindow_ = new Region(new Point(0, 0), entireFrameSize); }