package com.saucelabs.selenium.client.embedded_rc;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.HasInputDevices;
import org.openqa.selenium.interactions.Keyboard;
import org.openqa.selenium.interactions.Mouse;
import java.util.List;
import java.util.Set;
/**
* @author Ross Rowe
*/
public class WebDriverFilter implements WebDriver, HasInputDevices {
private WebDriver base;
public WebDriverFilter(WebDriver base) {
this.base = base;
}
public void get(String s) {
base.get(s);
}
public String getCurrentUrl() {
return base.getCurrentUrl();
}
public String getTitle() {
return base.getTitle();
}
public List<WebElement> findElements(By by) {
return base.findElements(by);
}
public WebElement findElement(By by) {
return base.findElement(by);
}
public String getPageSource() {
return base.getPageSource();
}
public void close() {
base.close();
}
public void quit() {
base.quit();
}
public Set<String> getWindowHandles() {
return base.getWindowHandles();
}
public String getWindowHandle() {
return base.getWindowHandle();
}
public TargetLocator switchTo() {
return base.switchTo();
}
public Navigation navigate() {
return base.navigate();
}
public Options manage() {
return base.manage();
}
public Keyboard getKeyboard() {
if (base instanceof HasInputDevices) {
return ((HasInputDevices) base).getKeyboard();
} else {
return null;
}
}
public Mouse getMouse() {
if (base instanceof HasInputDevices) {
return ((HasInputDevices) base).getMouse();
} else {
return null;
}
}
}