public void ReturnToOriginalPosition(IWebDriver driver) { IWebElement scrollRootElement = GetScrollRootElement(driver); IPositionProvider positionProvider = new ScrollPositionProvider(logger_, jsExecutor_, scrollRootElement); positionProvider.RestoreState(positionMemento_); }
public IWebDriver FramesDoScroll(FrameChain frameChain) { logger_.Verbose("EyesTargetLocator.framesDoScroll(frameChain)"); ITargetLocator targetLocator = driver_.SwitchTo(); targetLocator.DefaultContent(); IPositionProvider scrollProvider = new ScrollPositionProvider(logger_, jsExecutor_, driver_.Eyes.GetCurrentFrameScrollRootElement()); defaultContentPositionMemento_ = scrollProvider.GetState(); foreach (Frame frame in frameChain) { logger_.Verbose("Scrolling by parent scroll position..."); Point frameLocation = frame.Location; scrollProvider.SetPosition(frameLocation); logger_.Verbose("Done! Switching to frame..."); targetLocator.Frame(frame.Reference); Frame newFrame = driver_.GetFrameChain().Peek(); newFrame.ScrollRootElement = frame.ScrollRootElement; newFrame.ScrollRootElementInnerBounds = frame.ScrollRootElementInnerBounds; logger_.Verbose("Done!"); } logger_.Verbose("Done switching into nested frames!"); return(driver_); }