알리미 란 무엇입니까?
알림은 사용자에게 특정 정보를 제공하거나 특정 종류의 작업을 수행 할 수있는 권한을 요청하는 화면 알림을 표시하는 작은 메시지 상자입니다. 경고 목적으로도 사용될 수 있습니다.
다음은 몇 가지 경고 유형입니다.
1) 간단한 경고(Simple Alert)
이 간단한 경고는 화면에 몇 가지 정보 또는 경고를 표시합니다.
2) 즉각적인 경고.(Prompt Alert.)
이 프롬프트 알리미는 사용자의 입력을 요청하고 셀레늄 웹 드라이브는 sendkeys ( "input ...")를 사용하여 텍스트를 입력 할 수 있습니다.
3) 확인 경고.(Confirmation Alert.)
이 확인 경고는 몇 가지 유형의 작업을 수행 할 수있는 권한을 요청합니다.
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 () 메소드를 사용하여 주 윈도우에서 경고로 쉽게 전환 할 수 있습니다 .
이제 아래 주어진 시나리오를 자동화합니다.
이 시나리오에서는 Guru99 데모 사이트를 사용하여 Selenium Alert 처리 방법을 설명합니다.
1 단계) 웹 브라우저를 실행하고 " http://demo.guru99.com/test/delete_customer.php " 사이트를 엽니 다.
2 단계) 고객 ID를 입력하십시오.
3 단계) 고객 ID를 입력 한 후 "제출"버튼을 클릭하십시오.
4 단계) 경고를 거부하거나 수락합니다.
위의 시나리오를 사용하여 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 " 사이트를 엽니 다.
2 단계) "여기를 클릭하십시오"링크를 클릭하십시오.
사용자가 "여기를 클릭하십시오"링크를 클릭하면 새 하위 창이 열립니다.
3 단계) 새 하위 창이 열립니다.
새 창이 열리 며 사용자에게 이메일 ID를 입력하고 페이지를 제출하도록 요청합니다.
4 단계) 이메일 ID를 입력하고 제출하십시오.
5 단계) 페이지를 제출할 때 액세스 자격 증명을 표시합니다.
코드를 실행하면 하위 창이 새 탭에서 열리는 것을 볼 수 있습니다.
- 자격 증명이 표시되는 하위 창을 닫습니다.
- 상위 창으로 전환하십시오.
위의 시나리오를 사용하여 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로 Alert를 처리하는 방법을 보여줍니다.
- 특정 시나리오를 사용하여 Selenium WebDriver로 여러 창을 처리했습니다.
'자동화테스트 > Selenium' 카테고리의 다른 글
(selenium) 암시 적 대기 및 명시적인 셀레니움 대기 (0) | 2018.12.03 |
---|---|
XPath에는 Selenium WebDriver의 형제, 조상 함수가 포함 (0) | 2018.12.02 |
명령 프롬프트에서 TestNG 프로젝트 및 실패한 테스트 케이스를 실행하는 방법 (0) | 2018.11.28 |
Selenium WebDriver 용 Eclipse에 TestNG를 설치하는 방법 (0) | 2018.11.26 |
Selenium WebDriver의 XPath (2) | 2018.11.25 |