@Override
 public AugmentedWebElement findElementContainAfter(By by, String text, int waitInSeconds) {
   Preconditions.checkNotNull(by);
   Preconditions.checkArgument(!Strings.isNullOrEmpty(text));
   return augmentedWebElementFactory.create(
       WebDriverUtil.findElementContainAfter(searchContext, by, text, waitInSeconds));
 }
 @Override
 public List<AugmentedWebElement> findElementsClickableAfter(By by, int waitInSeconds) {
   Preconditions.checkNotNull(by);
   return WebDriverUtil.findElementsClickableAfter(searchContext, by, waitInSeconds)
       .stream()
       .map(webElement -> augmentedWebElementFactory.create(webElement))
       .collect(Collectors.toList());
 }
 @Override
 public AugmentedWebElement moveToAfter(By moveTo, int waitInSeconds) {
   return augmentedWebElementFactory.create(
       WebDriverUtil.moveTo(augmentedWebDriverProvider.get(), moveTo, waitInSeconds));
 }
 @Override
 public void moveToAndClickAfter(By moveTo, By click, int waitInSeconds) {
   WebDriverUtil.moveToAndClick(augmentedWebDriverProvider.get(), moveTo, click, waitInSeconds);
 }
 @Override
 public void waitElementToNotBeVisibleAfter(By by, int waitInSeconds) {
   Preconditions.checkNotNull(by);
   WebDriverUtil.waitElementToNotBeVisible(searchContext, by, waitInSeconds);
 }
 @Override
 public AugmentedWebElement findElementNotMovingAfter(By by, int waitSeconds) {
   Preconditions.checkNotNull(by);
   return augmentedWebElementFactory.create(
       WebDriverUtil.findElementNotMovingAfter(searchContext, by, waitSeconds));
 }