/** * Copyright 2015 Nabarun Mondal * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * <p> * http://www.apache.org/licenses/LICENSE-2.0 * <p> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.noga.njexl.testing.ui; import org.openqa.selenium.*; import java.util.List; import java.util.Set; /** * This is a wrapper abstract class for configurable remote webdrivers. * Created by noga on 09/09/15. */ public abstract class XWebDriver implements WebDriver, TakesScreenshot{ public final WebDriver driver ; public XWebDriver(WebDriver webDriver){ driver = webDriver ; } @Override public void get(String s) { driver.get(s); } @Override public String getCurrentUrl() { return driver.getCurrentUrl(); } @Override public String getTitle() { return driver.getTitle(); } @Override public List<WebElement> findElements(By by) { return driver.findElements(by); } @Override public WebElement findElement(By by) { return driver.findElement(by); } @Override public String getPageSource() { return driver.getPageSource(); } @Override public void close() { driver.close(); } @Override public void quit() { driver.quit(); } @Override public Set<String> getWindowHandles() { return driver.getWindowHandles(); } @Override public String getWindowHandle() { return driver.getWindowHandle(); } @Override public TargetLocator switchTo() { return driver.switchTo(); } @Override public Navigation navigate() { return driver.navigate(); } @Override public Options manage() { return driver.manage(); } @Override public <X> X getScreenshotAs(OutputType<X> outputType) throws WebDriverException { if ( driver instanceof TakesScreenshot ){ return ((TakesScreenshot)driver).getScreenshotAs(outputType); } throw new WebDriverException("Taking Screenshot is not supported by the underlying driver!"); } }