자동화테스트/Selenium2018. 11. 30. 08:00

알리미 란 무엇입니까?

알림은 사용자에게 특정 정보를 제공하거나 특정 종류의 작업을 수행 할 수있는 권한을 요청하는 화면 알림을 표시하는 작은 메시지 상자입니다. 경고 목적으로도 사용될 수 있습니다.

다음은 몇 가지 경고 유형입니다.

1) 간단한 경고(Simple Alert)

이 간단한 경고는 화면에 몇 가지 정보 또는 경고를 표시합니다.

Selenium WebDriver의 경고 및 팝업 처리

2) 즉각적인 경고.(Prompt Alert.)

이 프롬프트 알리미는 사용자의 입력을 요청하고 셀레늄 웹 드라이브는 sendkeys ( "input ...")를 사용하여 텍스트를 입력 할 수 있습니다.

Selenium WebDriver의 경고 및 팝업 처리

3) 확인 경고.(Confirmation Alert.)

이 확인 경고는 몇 가지 유형의 작업을 수행 할 수있는 권한을 요청합니다.

Selenium WebDriver의 경고 및 팝업 처리

Selenium WebDriver에서 경고를 처리하는 방법

Alert 인터페이스는 Selenium Webdriver에서 널리 사용되는 몇 가지 방법을 제공합니다.

1) void dismiss () // 경고의 'Cancel'버튼을 클릭하십시오.

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

2) void accept () // 경고의 'OK'버튼을 클릭하십시오.

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

3) String getText () // 경고 메시지를 캡처합니다.

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

4) void sendKeys (String stringToSend) // 일부 데이터를 경고 상자에 보냅니다.

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

이클립스에서 제안한 아래 화면과 같이 여러 가지 경고 메소드가 표시되는 것을 볼 수 있습니다.

우리는 Selenium의 .switchTo () 메소드를 사용하여 주 윈도우에서 경고로 쉽게 전환 할 수 있습니다 .

Selenium WebDriver의 경고 및 팝업 처리

이제 아래 주어진 시나리오를 자동화합니다.

이 시나리오에서는 Guru99 데모 사이트를 사용하여 Selenium Alert 처리 방법을 설명합니다.

1 단계) 웹 브라우저를 실행하고 " http://demo.guru99.com/test/delete_customer.php " 사이트를 엽니 다.

2 단계) 고객 ID를 입력하십시오.

Selenium WebDriver의 경고 및 팝업 처리

3 단계) 고객 ID를 입력 한 후 "제출"버튼을 클릭하십시오.

Selenium WebDriver의 경고 및 팝업 처리

4 단계) 경고를 거부하거나 수락합니다.

Selenium WebDriver의 경고 및 팝업 처리

위의 시나리오를 사용하여 Selenium Webdriver에서 경고 처리

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.NoAlertPresentException;	
import org.openqa.selenium.Alert;

public class AlertDemo {
	
	public static void main(String[] args) throws NoAlertPresentException,InterruptedException  {									
		System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
		WebDriver driver = new ChromeDriver();
	
        
        // 경고 메시지 처리
                    		
        driver.get("http://demo.guru99.com/test/delete_customer.php");			
                            		
     	      	
        driver.findElement(By.name("cusid")).sendKeys("53920");					
        driver.findElement(By.name("submit")).submit();			
        		
        // Alert로 전환     
        Alert alert = driver.switchTo().alert();		
        		
        // 경고 메시지를 캡처합니다.      
        String alertMessage= driver.switchTo().alert().getText();		
        		
        // 경고 메시지 표시			
        System.out.println(alertMessage);	
        Thread.sleep(5000);
        		
        // 알림 수신		
        alert.accept();		
    }	

}
		

출력 :

위 코드를 실행하면 사이트가 시작됩니다. 화면에 표시되는 확인 경고를 처리하여 고객 ID를 삭제하여 응용 프로그램에서 고객 ID를 삭제하십시오.

Webdriver를 사용하여 Selenium 팝업 창을 처리하는 방법

자동화에서 웹 애플리케이션에 여러 개의 창이있는 경우 작업을 완료하기 위해 여러 창간에 제어를 전환해야 할 수 있습니다. 작업이 완료되면 상위 창, 즉 상위 창으로 돌아와야합니다. 이 기사에서 예를 들어 더 자세하게 살펴 보겠습니다.

셀레늄 웹 드라이버에는 여러 윈도우를 처리 할 수있는 메소드가 있습니다.

Driver.getWindowHandles ();

웹 드라이버로 열려있는 모든 윈도우를 처리하기 위해 "Driver.getWindowHandles ()"를 사용할 수 있습니다. 그런 다음 웹 응용 프로그램의 한 윈도우에서 다른 윈도우로 윈도우를 전환 할 수 있습니다. 반환 유형은 Iterator <String>입니다.

Driver.getWindowHandle ();

사이트가 열리면 driver.getWindowHandle ()에 의해 주 창을 처리해야합니다 이 드라이버 인스턴스 내에서이를 고유하게 식별하는 현재 창을 처리합니다. 반환 유형은 String입니다.

Selenium WebDriver에서 여러 창을 처리하기 위해 다음 단계를 수행합니다.

이제 Selenium Webdriver를 사용하여 여러 창을 처리하는 방법을 알아보기 위해 주어진 아래 시나리오를 자동화 할 것입니다.

이 시나리오에서는 "Guru99"데모 사이트를 사용하여 창 처리를 설명합니다.

1 단계) 사이트를 시작합니다.

브라우저를 실행하고 " http://demo.guru99.com/popup.php " 사이트를 엽니 다.

Selenium WebDriver의 경고 및 팝업 처리

2 단계) "여기를 클릭하십시오"링크를 클릭하십시오.

사용자가 "여기를 클릭하십시오"링크를 클릭하면 새 하위 창이 열립니다.

Selenium WebDriver의 경고 및 팝업 처리

3 단계) 새 하위 창이 열립니다.

새 창이 열리 며 사용자에게 이메일 ID를 입력하고 페이지를 제출하도록 요청합니다.

Selenium WebDriver의 경고 및 팝업 처리

4 단계) 이메일 ID를 입력하고 제출하십시오.

Selenium WebDriver의 경고 및 팝업 처리

5 단계) 페이지를 제출할 때 액세스 자격 증명을 표시합니다.

Selenium WebDriver의 경고 및 팝업 처리

코드를 실행하면 하위 창이 새 탭에서 열리는 것을 볼 수 있습니다.

  1. 자격 증명이 표시되는 하위 창을 닫습니다.

Selenium WebDriver의 경고 및 팝업 처리

  1. 상위 창으로 전환하십시오.

Selenium WebDriver의 경고 및 팝업 처리

위의 시나리오를 사용하여 selenium webdriver에서 여러 창 처리.

import java.util.Iterator;		
import java.util.Set;		
import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		

public class WindowHandle_Demo {				

    public static void main(String[] args) throws InterruptedException {									
        	WebDriver driver=new FirefoxDriver();			
        		
        // 사이트를 시작합니다.				
            driver.get("http://demo.guru99.com/popup.php");			
        driver.manage().window().maximize();		
                		
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("gaurav.3n@gmail.com");                			
                    
                    driver.findElement(By.name("btnLogin")).click();			
                                 
			// 자식 창 닫기.
                        driver.close();		
            }		
        }		
        // 부모 윈도우, 즉 메인 윈도우로 전환.
            driver.switchTo().window(MainWindow);				
    }
}		

산출:

위 코드를 실행하면 사이트가 시작되고 "여기를 클릭하십시오"링크를 클릭하면 새 탭에 하위 창이 열립니다. 작업이 완전히 완료되면 하위 창을 닫고 상위 창으로 전환 할 수 있습니다. 따라서 응용 프로그램에서 둘 이상의 창을 처리합니다.

Selenium WebDriver의 경고 및 팝업 처리

결론:

  • 우리는 경고 유형을 정의하고 스크린 샷으로 보여주었습니다.
  • 특정 시나리오를 사용하여 Selenium WebDriver로 Alert를 처리하는 방법을 보여줍니다.
  • 특정 시나리오를 사용하여 Selenium WebDriver로 여러 창을 처리했습니다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터