1 importcom.uitest.control.by.LocationUtil;2 importorg.openqa.selenium.WebDriver;3 importorg.openqa.selenium.WebElement;4 importorg.openqa.selenium.interactions.Actions;5
6 importjava.util.concurrent.TimeUnit;7
8 public abstract class BasePageImpl implementsBasePage {9 protected finalWebDriver driver;10 private static final long timeOutInSeconds = 10;11
12 BasePageImpl(WebDriver driver, String url) {13 this.driver =driver;14 this.driver.manage().timeouts().implicitlyWait(timeOutInSeconds, TimeUnit.SECONDS);15 this.driver.get(url);16 }17
18 BasePageImpl(WebDriver driver) {19 this.driver =driver;20 this.driver.manage().timeouts().implicitlyWait(timeOutInSeconds, TimeUnit.SECONDS);21 }22
23 publicWebElement findElement(String loc) {24 returndriver.findElement(LocationUtil.getLocation(loc));25 }26
27 public voidsendKeys(String loc, String var1) {28 findElement(loc).sendKeys(var1);29 }30
31 public voidclick(String loc) {32 findElement(loc).click();33 }34
35 public voidsubmit(String loc) {36 findElement(loc).submit();37 }38
39 public voidswitchToFrame(String loc) {40 driver.switchTo().frame(findElement(loc));41 }42
43 public voidswitchToParentFrame() {44 driver.switchTo().parentFrame();45 }46
47 public voidcloseAlert() {48 driver.switchTo().alert().dismiss();49 }50
51 public voidacceptAlert() {52 driver.switchTo().alert().accept();53 }54
55 publicString getAlertText() {56 returndriver.switchTo().alert().getText();57 }58
59 public voidmoveToElement(String loc) {60 newActions(driver).moveToElement(findElement(loc)).perform();61 }62
63 public voiddoubleClick(String loc) {64 newActions(driver).doubleClick(findElement(loc)).perform();65 }66
67 public voidcontextClick(String loc) {68 newActions(driver).contextClick(findElement(loc)).perform();69 }70
71 public voiddragAndDrop(String source, String target) {72 newActions(driver).dragAndDrop(findElement(source), findElement(target)).perform();73 }74
75 public voidcloseBrowser() {76 driver.close();77 }78
79 publicString getTitle() {80 returndriver.getTitle();81 }82
83 publicString getUrl() {84 returndriver.getCurrentUrl();85 }86
87 public voidmaxBrowser() {88 driver.manage().window().maximize();89 }90 }