/*
* ###
* Archetype - phresco-nodejs-archetype
*
* Copyright (C) 1999 - 2012 Photon Infotech Inc.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.photon.phresco.Screens;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Select;
import com.google.common.base.Function;
import com.photon.phresco.selenium.util.ScreenException;
public class WebDriverBaseScreen extends WebDriverAbstractBaseScreen {
private Log log = LogFactory.getLog(getClass());
protected WebDriverBaseScreen() throws ScreenException{
if(element==null){
throw new ScreenException("********The element value should not be null********");
}
}
public void click()throws ScreenException{
log.info("Entering:********click operation start********");
try{
element.click();
}catch(Throwable t){
t.printStackTrace();
}
log.info("Entering:********click operation end********");
}
public void clear()throws ScreenException{
log.info("Entering:********clear operation start********");
try{
element.clear();
}catch(Throwable t){
t.printStackTrace();
}
log.info("Entering:********clear operation end********");
}
public void type(String text)throws ScreenException{
log.info("Entering:********enterText operation start********");
try{
clear();
element.sendKeys(text);
}catch(Throwable t){
t.printStackTrace();
}
log.info("Entering:********enterText operation end********");
}
public void submit()throws ScreenException{
log.info("Entering:********submit operation start********");
try{
element.submit();
}catch(Throwable t){
t.printStackTrace();
}
log.info("Entering:********submit operation end********");
}
public void selectListItem(String xpath,String valueToSelect){
WebElement selectElement = driver.findElement(By.xpath(xpath));
// Then instantiate the Select class with that WebElement
Select select = new Select(selectElement);
// Get a list of the options
List<WebElement> options = select.getOptions();
// For each option in the list, verify if it's the one you want and then click it
for (WebElement we : options) {
if (we.getText().equals(valueToSelect)) {
we.click();
//break;
}
}
}
public void accept() throws InterruptedException{
// String parentWindowHandle = driver.getWindowHandle(); // save the current window handle.
WebDriver popup = null;
//String windowname=driver.getWindowHandle();
Set<String> windowname=driver.getWindowHandles();
Iterator<String> window=windowname.iterator();
while(window.hasNext()) {
String windowHandle = window.next();
popup = driver.switchTo().window(windowHandle);
// driver.switchTo().defaultContent().switchTo().frame("windowHandle");
System.out.println("------------------POP-UP WINDOW NAME---->"+popup.getTitle().toString());
if (popup.getTitle().toString().equalsIgnoreCase("")) {
popup.findElement(By.name("OK")).click();
Thread.sleep(5000);
break;
}
}
}
/*public void accept2() throws InterruptedException{
String name=driver.getWindowHandle();
WebDriver windowname=driver.switchTo().window("Opening barcode-labels");
System.out.println("--------------Window name--------->"+windowname.getTitle());
windowname.findElement(By.name("Cancel"));
Thread.sleep(5000);
}*/
}