본문 바로가기

테스트툴/Selenium

Selenium 경고, 팝업 창 처리하기

경고 처리하기

void dismiss() - 경고의 취소 버튼 클릭

driver.switchTo(). alert(). dismiss();

void accept() - 경고의 확인 버튼 클릭

driver.switchTo(). alert(). accept();

String getText() - 경고 메세지 캡처

driver. switchTo(). alert(). getText();

void sendKeys(String stringToSend) - 경고 상자에 데이터 보내기

driver.switchTo().alert().sendKeys("Text");

실습은 

 

Delete Customer

 

demo.guru99.com

위 페이지를 활용했습니다

고객 ID를 입력한 뒤 제출 버튼을 눌립니다

alrert 창이 뜨면 창의 텍스트를 콘솔창에 print 하고 수락을 누릅니다

package newpackage;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.WebElement;//webElement 사용
import org.openqa.selenium.support.ui.Select;//Select 사용
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;//Action 사용
import org.openqa.selenium.NoAlertPresentException;	
import org.openqa.selenium.Alert;//alert 사용

public class MyClass {
	public static void main(String[] args) throws NoAlertPresentException,InterruptedException  {
		System.setProperty("webdriver.chrome.driver", "c:/selenium/chromedriver.exe");
		WebDriver driver = new ChromeDriver();
		
		String getURL = "http://demo.guru99.com/test/delete_customer.php";
		driver.get(getURL);
		
		driver.findElement(By.name("cusid")).sendKeys("abc");
		driver.findElement(By.name("submit")).submit();
		
		Alert alert = driver.switchTo().alert();
		
		String alertMessage = driver.switchTo().alert().getText();
		
		System.out.println(alertMessage);
		Thread.sleep(5000);
		
		alert.accept();
	}
}

Console 결과


Driver.getWindowHandles(); - 웹 드라이버로 열려있는 모든 창을 처리하는 메서드입니다. 웹 응용 프로그램에서 창을 한 창에서 다른 창으로 전환하고, 반환 유형은 Iterator<String>입니다.

Driver.getWindowHandle(); - 메인 창을 처리하는 메서드입니다. 드라이버 인스턴스 내에서 고유하게 식별하는 현재 창을 처리합니다.반환 유형은 문자열입니다.

 

Selenium Webdriver에서 여러 창을 처리하는 실습은

 

Guru99 Bank Home Page

 

demo.guru99.com

위 페이지를 활용했습니다

Click Here 링크를 클릭하여 하위 창이 열리면 

그 창에 email을 입력하고 submit 합니다

Access detail to demo site를 확인하고

그 창을 닫습니다

그리고 처음 창으로 전환합니다

package newpackage;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.WebElement;//webElement 사용
import org.openqa.selenium.support.ui.Select;//Select 사용
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;//Action 사용
import org.openqa.selenium.NoAlertPresentException;	
import org.openqa.selenium.Alert;//alert 사용

import java.util.Iterator;		
import java.util.Set;

public class MyClass {
	public static void main(String[] args) throws InterruptedException{
		System.setProperty("webdriver.chrome.driver", "c:/selenium/chromedriver.exe");
		WebDriver driver = new ChromeDriver();
		
		String getURL = " http://demo.guru99.com/popup.php";
		driver.get(getURL);
		
		driver.findElement(By.xpath("//*[contains(@href,'popup.php')]")).click();
		
		String MainWindow = driver.getWindowHandle();
		Set<String> s1= driver.getWindowHandles();
		Iterator<String> i1= s1.iterator();
		
		while(i1.hasNext()){
			String ChildWindow = i1.next();
			
			if(!MainWindow.equalsIgnoreCase(ChildWindow)){
				driver.switchTo().window(ChildWindow);
				driver.findElement(By.name("emailid")).sendKeys("abc@naver.com");
				driver.findElement(By.name("btnLogin")).click();
				
				driver.close();
			}
		}
		driver.switchTo().window(MainWindow);
	}
}

'테스트툴 > Selenium' 카테고리의 다른 글

Selenium Webdriver 툴 팁  (0) 2021.04.03
Selenium 웹 테이블  (0) 2021.03.28
Selenium 파일 업로드  (0) 2021.03.20
Selenium 마우스 이벤트와 키보드 이벤트  (0) 2021.03.19
Selenium Webdriver 링크 텍스트 요소 찾기  (0) 2021.03.16