we can write functional test cases using selenium in java for automation
import java.util.Collection; import org.openqa.selenium.By; import org.openqa.selenium.Proxy; import org.openqa.selenium.WebDriver; import org.openqa.selenium.Proxy.ProxyType; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxProfile; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import com.googlecode.fightinglayoutbugs.FightingLayoutBugs; import com.googlecode.fightinglayoutbugs.LayoutBug; import com.googlecode.fightinglayoutbugs.WebPage; public class Test { public static void main(String[] args) { Proxy proxy = new Proxy(); proxy.setProxyType(ProxyType.MANUAL); proxy.setHttpProxy("localhost:8080"); proxy.setSslProxy("localhost:8080"); proxy.setFtpProxy("localhost:8080"); proxy.setNoProxy("localhost,127.0.0.1"); //End Proxy Settings //Auto Configure Firefox Download folder for Excel Type FirefoxProfile firefoxProfile = new FirefoxProfile(); firefoxProfile.setPreference("browser.download.folderList",2); firefoxProfile.setPreference("browser.download.manager.showWhenStarting",false); firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/vnd.ms-excel"); DesiredCapabilities dc = DesiredCapabilities.firefox(); dc.setCapability(CapabilityType.PROXY, proxy); firefoxProfile.setProxyPreferences(proxy); WebDriver driver =new FirefoxDriver(firefoxProfile); String userNames[] = {}; String passwords[] = {}; int i=0; driver.get("http://localhost/authentication/login.jsf"); driver.findElement(By.id("_id166:username")).sendKeys(userNames[i]); driver.findElement(By.id("_id166:password")).sendKeys(passwords[i]); driver.findElement(By.id("_id166:submitLogin")).click(); try{ Test.wait(driver, "next Page title"); } catch(Exception ex){ex.printStackTrace();} public static void wait(WebDriver driver,final String pageTitle) { (new WebDriverWait(driver, 10)).until(new ExpectedCondition() { public Boolean apply(WebDriver d) { return d.getTitle().toLowerCase().startsWith(pageTitle); }}); } }