경고 처리하기
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");
실습은
위 페이지를 활용했습니다
고객 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();
}
}
Driver.getWindowHandles(); - 웹 드라이버로 열려있는 모든 창을 처리하는 메서드입니다. 웹 응용 프로그램에서 창을 한 창에서 다른 창으로 전환하고, 반환 유형은 Iterator<String>입니다.
Driver.getWindowHandle(); - 메인 창을 처리하는 메서드입니다. 드라이버 인스턴스 내에서 고유하게 식별하는 현재 창을 처리합니다.반환 유형은 문자열입니다.
Selenium Webdriver에서 여러 창을 처리하는 실습은
위 페이지를 활용했습니다
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 |