/* * This program is part of the OpenLMIS logistics management information system platform software. * Copyright © 2013 VillageReach * * This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. *   * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more details. * You should have received a copy of the GNU Affero General Public License along with this program.  If not, see http://www.gnu.org/licenses.  For additional information contact info@OpenLMIS.org.  */ package org.openlmis.pageobjects; import org.openlmis.UiUtils.TestWebDriver; import org.openqa.selenium.Keys; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import java.awt.*; import java.awt.event.KeyEvent; import static org.openqa.selenium.support.How.ID; public abstract class Page { public TestWebDriver testWebDriver; @FindBy(how = ID, using = "logout") private static WebElement logoutLink = null; protected Page(TestWebDriver driver) { this.testWebDriver = driver; } public LoginPage logout() { testWebDriver.waitForElementToBeEnabled(logoutLink); logoutLink.click(); testWebDriver.sleep(500); return new LoginPage(testWebDriver); } public void sendKeys(WebElement locator, String value) { String locatorValueAttribute = testWebDriver.getAttribute(locator, "value"); int length = locatorValueAttribute.length(); for (int i = 0; i < length; i++) { locator.sendKeys("\u0008"); } locator.sendKeys(value); } public void downloadFileWhileSaveDialogOPen(WebElement element) throws InterruptedException { try { Robot robot = new Robot(); //get the focus on the element..don't use click since it stalls the driver element.sendKeys(""); element.sendKeys(Keys.RETURN); //wait for the modal dialog to open Thread.sleep(3000); //press s key to save robot.keyPress(KeyEvent.VK_ALT); robot.keyPress(KeyEvent.VK_S); robot.keyRelease(KeyEvent.VK_S); robot.keyRelease(KeyEvent.VK_ALT); Thread.sleep(3000); } catch (AWTException e) { e.printStackTrace(); } } }