Q)How to handle Multiple Window in Selenium and write code to make Re-usable method and Add in framework
package com.seleniumpractice;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class CityBankMutipleWindow extends HelperTest{
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver","D:\\driver1016\\chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("https://www.online.citibank.co.in/");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
//String parentWindow= driver.getWindowHandle();
String parentWindow= HelperTest.getParentWindow(driver);
String actualparentWindowtite=driver.getTitle();
System.out.println("actualparentWindowtite.." + actualparentWindowtite);
String expectedparentWindowtite="Citi India - Credit Cards, Personal & Home Loans, Investment, Wealth Management & Banking";
HelperTest.compareString(actualparentWindowtite, expectedparentWindowtite);
driver.findElement(By.xpath("//a[@id='loginId']/img")).click();
/*
Set<String> set= driver.getWindowHandles();
Iterator<String> itr=set.iterator();
while(itr.hasNext()){
String childWindow=itr.next();
if(!(parentWindow).equals(childWindow)){
driver.switchTo().window(childWindow);
//String actualchildwinowTite=driver.getTitle();
//System.out.println("actualchildwinowtite....");
//String expectedchidwindowTitle="citibank";
//System.out.println("expectedchidwindow"+expectedchidwindowTitle);
*
*/
HelperTest.getChildWindow(driver);
String actualStr=driver.findElement(By.xpath("//h1[contains(text(),'Welcome to Citibank Online')]")).getText();
System.out.println("actualStr..." + actualStr);
String expctedStr="Welcome to Citibank Online";
System.out.println("expctedStr..."+ expctedStr);
HelperTest.compareString(actualStr, expctedStr);
//driver.switchTo().window(parentWindow);
HelperTest.switchToWindow(driver, parentWindow);
driver.quit();
}
}
=========================================================================
package com.seleniumpractice;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.FluentWait;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.Wait;
import org.openqa.selenium.support.ui.WebDriverWait;
public class HelperTest {
public static WebDriver driver;
public static String driverpath="D:\\SeleniumJar_08_28_2020\\chromedriver_win32 (4)\\chromedriver.exe\\";
public static String url="file:///D:/Ingenious_TechHub_Teaching/Ingenious_Selenium/Htmldoc/dob.html";
/**
* This Method is used to launch App
*
*/
public static void launchApp(){
System.setProperty("webdriver.chrome.driver", driverpath);
driver=new ChromeDriver();
driver.get(url);
maxmizeBrowser();
}
/**
* This Method is used to max browser
*
*/
public static void maxmizeBrowser(){
driver.manage().window().maximize();
}
/**
* This Method is used to close borwser
*
*/
public static void closeBrowser(){
driver.close();
}
/**
* This Method is used to compare String
* @param actual is String Type
* @param Expected is String Type
*/
public static void compareString(String actual,String expected){
if(actual.equals(expected)){
System.out.println("************ Test Cased is passed ***********");
}
else{
System.out.println("************ Test Cased is Failed ***********");
}
}
public static WebElement explicitlyWait(WebDriver driver,int a,String str){
WebDriverWait wait=new WebDriverWait(driver,a);
return wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(str)));
}
public static WebElement fluentWait(WebDriver driver,int a,int b,String strxpath){
Wait<WebDriver> wait=new FluentWait<>(driver)
.withTimeout(a, TimeUnit.SECONDS)
.pollingEvery(b, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
return wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(strxpath)));
}
public static WebElement getfirstOptions(WebElement ele){
Select sel=new Select(ele);
WebElement getFirstOption=sel.getFirstSelectedOption();
String strgetFirstOption= getFirstOption.getText();
System.out.println("strgetFirstOption..."+ strgetFirstOption);
return getFirstOption;
}
public static WebElement listofDropdown(WebElement ele){
Select sel=new Select(ele);
List<WebElement> listofDropdown=sel.getOptions();
for(int i=0;i<listofDropdown.size();i++){
String listofDrop=listofDropdown.get(i).getText();
System.out.println("listofDrop..." + listofDrop);
}
return ele;
}
public static WebElement selctByIndexEle(WebElement ele1,int index){
Select selEle=new Select(ele1);
selEle.selectByIndex(index);
return ele1;
}
public static WebElement selectByValueEle(WebElement ele2,String value){
Select selEle=new Select(ele2);
selEle.selectByValue(value);
return ele2;
}
public static WebElement selectByTextEle(WebElement ele3,String text){
Select selEle=new Select(ele3);
selEle.selectByVisibleText(text);
return ele3;
}
public static List<WebElement> selectBosttrapDropDown(List<WebElement> list,String xpath,String selValue){
list=driver.findElements(By.xpath(xpath));
for(int i=0;i<list.size();i++){
String str=list.get(i).getText();
if(str.equalsIgnoreCase(str)){
list.get(i).click();
break;
}
}
return list;
}
public static WebElement movetoElement(WebDriver driver,WebElement ele){
Actions act=new Actions(driver);
act.moveToElement(ele).perform();
return ele;
}
public static void ClickWithActions(WebDriver driver,WebElement ele){
Actions act=new Actions(driver);
act.moveToElement(ele).click().perform();
}
public static void dragAndDrop(WebDriver driver,WebElement drag,WebElement drop){
Actions act=new Actions(driver);
act.dragAndDrop(drag, drop).build().perform();
}
public static void movetoOffSet(WebDriver driver,WebElement ele,int xoffSet,int yoffSet){
Actions act=new Actions(driver);
act.moveToElement(ele, xoffSet,yoffSet).perform();
}
public static String alertGetText(WebDriver driver){
Alert alt=driver.switchTo().alert();
String getStr=alt.getText();
System.out.println(getStr);
return getStr;
}
public static void alertAccept(WebDriver driver){
Alert alt=driver.switchTo().alert();
alt.accept();
}
public static void alerDismiss(WebDriver driver){
Alert alt=driver.switchTo().alert();
alt.dismiss();
}
public static String gettilteofPage(WebDriver driver){
String str=driver.getTitle();
System.out.println(str);
return str;
}
public static String getParentWindow(WebDriver driver){
return driver.getWindowHandle();
}
public static void getChildWindow(WebDriver driver){
Set<String> set=driver.getWindowHandles();
Iterator<String> itr=set.iterator();
while(itr.hasNext()){
String childWindow=itr.next();
String parentdow=getParentWindow(driver);
if(!parentdow.equals(childWindow)){
driver.switchTo().window(childWindow);
}
}
}
public static void switchToWindow(WebDriver driver,String window){
driver.switchTo().window(window);
}
}
No comments:
Post a Comment