วิธีจัดการ Selenium การแจ้งเตือนและป๊อปอัป?

Alert มีอะไรบ้าง Selenium?

An แจ้งเตือนเข้า. Selenium เป็นกล่องข้อความขนาดเล็กที่ปรากฏบนหน้าจอเพื่อแจ้งข้อมูลหรือแจ้งเตือนผู้ใช้ โดยจะแจ้งข้อมูลเฉพาะหรือข้อผิดพลาดบางอย่างให้ผู้ใช้ทราบ ขออนุญาตดำเนินการบางอย่าง และยังแสดงข้อความเตือนด้วย

ในบทช่วยสอนนี้ เราจะได้เรียนรู้วิธีจัดการป๊อปอัป Selenium และการแจ้งเตือนประเภทต่างๆ ที่พบในเว็บแอปพลิเคชัน การทดสอบ- เราจะดูวิธีจัดการกับ Alert ด้วย Selenium WebDriver และเรียนรู้วิธีที่เราจะยอมรับและปฏิเสธการแจ้งเตือนโดยขึ้นอยู่กับประเภทการแจ้งเตือน

ประเภทของการแจ้งเตือนใน Selenium

1) Simple Alert

คลาสการแจ้งเตือนแบบง่ายใน Selenium แสดงข้อมูลหรือคำเตือนบางอย่างบนหน้าจอ

Simple Alert

2) Prompt Alert

ลิ้มรส Prompt Alert ถามข้อมูลบางอย่างจากผู้ใช้และ Selenium webdriver สามารถป้อนข้อความโดยใช้ sendkeys(” input…. “)

Prompt Alert

3) Confirmation Alert

การแจ้งเตือนการยืนยันนี้ขออนุญาตในการดำเนินการบางประเภท

Confirmation Alert

วิธีจัดการกับ Alert ใน Selenium ไดรเวอร์เว็บ

อินเทอร์เฟซการแจ้งเตือนมีวิธีการด้านล่างซึ่งใช้กันอย่างแพร่หลาย Selenium ไดรเวอร์เว็บ.

1) ยกเลิกเป็นโมฆะ () // หากต้องการคลิกที่ปุ่ม 'ยกเลิก' ของการแจ้งเตือน

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

2) เป็นโมฆะยอมรับ ()// หากต้องการคลิกที่ปุ่ม 'ตกลง' ของการแจ้งเตือน

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

3) สตริงgetText() // เพื่อบันทึกข้อความแจ้งเตือน

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

4) เป็นโมฆะ sendKeys (สตริง stringToSend) // เพื่อส่งข้อมูลบางอย่างไปยังกล่องแจ้งเตือน

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

คุณสามารถดูวิธีแจ้งเตือนจำนวนหนึ่งที่แสดงดังที่แสดงในหน้าจอด้านล่างซึ่งแนะนำโดย Eclipse.

เราสามารถเปลี่ยนการแจ้งเตือนจากหน้าต่างหลักได้อย่างง่ายดายโดยใช้ Selenium's .switchTo() วิธี

จัดการการแจ้งเตือนใน Selenium ไดรเวอร์เว็บ

ตอนนี้เราทำสถานการณ์ที่กำหนดด้านล่างโดยอัตโนมัติ

ในสถานการณ์นี้ เราจะใช้ไซต์สาธิต Guru99 เพื่อแสดงตัวอย่าง Selenium การจัดการการแจ้งเตือน

ขั้นตอน 1) เปิดเว็บเบราว์เซอร์และเปิดไซต์ https://demo.guru99.com/test/delete_customer.php

ขั้นตอน 2) ป้อนรหัสลูกค้าใดๆ

จัดการการแจ้งเตือนใน Selenium ไดรเวอร์เว็บ

ขั้นตอน 3) หลังจากกรอกรหัสลูกค้าแล้ว ให้คลิกที่ปุ่ม “ส่ง”

จัดการการแจ้งเตือนใน Selenium ไดรเวอร์เว็บ

ขั้นตอน 4) ปฏิเสธ/ยอมรับการแจ้งเตือน

จัดการการแจ้งเตือนใน Selenium ไดรเวอร์เว็บ

การจัดการการแจ้งเตือนใน Selenium ไดรเวอร์เว็บ

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();
	
        
        // Alert Message handling
                    		
        driver.get("https://demo.guru99.com/test/delete_customer.php");			
                            		
     	      	
        driver.findElement(By.name("cusid")).sendKeys("53920");					
        driver.findElement(By.name("submit")).submit();			
        		
        // Switching to Alert        
        Alert alert = driver.switchTo().alert();		
        		
        // Capturing alert message.    
        String alertMessage= driver.switchTo().alert().getText();		
        		
        // Displaying alert message		
        System.out.println(alertMessage);	
        Thread.sleep(5000);
        		
        // Accepting alert		
        alert.accept();		
    }	

}
		

Output:

เมื่อคุณรันโค้ดด้านบน เว็บไซต์จะเปิดขึ้น ให้ลองลบรหัสลูกค้าโดยจัดการกับการแจ้งเตือนยืนยันที่แสดงบนหน้าจอ และลบรหัสลูกค้าออกจากแอปพลิเคชัน

วิธีจัดการกับหน้าต่าง Pop-up โดยใช้ Selenium ไดรเวอร์เว็บ

ในระบบอัตโนมัติ เมื่อเรามีหน้าต่างหลายบานในแอปพลิเคชันบนเว็บ กิจกรรมอาจต้องสลับการควบคุมระหว่างหน้าต่างหลายบานจากหน้าต่างหนึ่งไปยังอีกหน้าต่างหนึ่งเพื่อดำเนินการให้เสร็จสมบูรณ์ หลังจากดำเนินการเสร็จสิ้นแล้ว จะต้องกลับไปที่หน้าต่างหลัก เช่น หน้าต่างหลักใน Selenium- เราจะเห็นสิ่งนี้เพิ่มเติมในบทความพร้อมตัวอย่าง

In Selenium ไดรเวอร์เว็บ มีวิธีการที่ช่วยให้เราจัดการกับหน้าต่างหลายหน้าต่างได้

ไดร์เวอร์.getWindowHandles();

ในการจัดการหน้าต่างที่เปิดทั้งหมดโดยใช้ไดรเวอร์เว็บ เราสามารถใช้ "Driver.getWindowHandles()" จากนั้นเราสามารถสลับหน้าต่างจากหน้าต่างหนึ่งไปยังอีกหน้าต่างหนึ่งในแอปพลิเคชันเว็บ ประเภทการส่งคืนคือ Iterator -

ไดร์เวอร์.getWindowHandle();

เมื่อไซต์เปิดขึ้น เราจะต้องจัดการหน้าต่างหลักด้วย ไดร์เวอร์.getWindowHandle()- ซึ่งจะจัดการกับหน้าต่างปัจจุบันที่ระบุโดยไม่ซ้ำกันภายในอินสแตนซ์ของไดรเวอร์นี้ ประเภทการส่งคืนของมันคือ String

สำหรับการจัดการหน้าต่างใน Seleniumเราจะทำตามขั้นตอนด้านล่าง:

ตอนนี้เราจะสร้างสถานการณ์ต่อไปนี้โดยอัตโนมัติ เพื่อดูวิธีการจัดการหน้าต่างหลายบานโดยใช้ Selenium เว็บไดรเวอร์

ในสถานการณ์นี้ เราจะใช้ไซต์สาธิต "Guru99" เพื่อแสดงการจัดการหน้าต่าง

ขั้นตอน 1) เปิดตัวเว็บไซต์

เปิดเบราว์เซอร์และเปิดไซต์ https://demo.guru99.com/popup.php

จัดการหน้าต่างป๊อปอัปโดยใช้ Selenium ไดรเวอร์เว็บ

ขั้นตอน 2) คลิกที่ลิงค์ “คลิกที่นี่”

เมื่อผู้ใช้คลิกที่ลิงค์ ” คลิกที่นี่ ” หน้าต่างลูกใหม่จะเปิดขึ้น

จัดการหน้าต่างป๊อปอัปโดยใช้ Selenium ไดรเวอร์เว็บ

ขั้นตอน 3) หน้าต่างลูกใหม่จะเปิดขึ้น

หน้าต่างใหม่จะเปิดขึ้น ขอให้ผู้ใช้ป้อนรหัสอีเมล์และส่งหน้า

จัดการหน้าต่างป๊อปอัปโดยใช้ Selenium ไดรเวอร์เว็บ

ขั้นตอน 4) กรอกรหัสอีเมล์ของคุณและส่ง

จัดการหน้าต่างป๊อปอัปโดยใช้ Selenium ไดรเวอร์เว็บ

ขั้นตอน 5) แสดงข้อมูลรับรองการเข้าถึงเมื่อส่งเพจ

จัดการหน้าต่างป๊อปอัปโดยใช้ Selenium ไดรเวอร์เว็บ

เมื่อคุณรันโค้ด คุณจะเห็นหน้าต่างลูกเปิดอยู่ในแท็บใหม่

  1. ปิดหน้าต่างย่อยที่แสดงข้อมูลประจำตัว

จัดการหน้าต่างป๊อปอัปโดยใช้ Selenium ไดรเวอร์เว็บ

  1. สลับไปที่หน้าต่างหลัก

จัดการหน้าต่างป๊อปอัปโดยใช้ Selenium ไดรเวอร์เว็บ

วิธีจัดการกับหลายรายการ Windows in Selenium

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();			
        		
        //Launching the site.				
            driver.get("https://demo.guru99.com/popup.php");			
        driver.manage().window().maximize();		
                		
driver.findElement(By.xpath("//*[contains(@href,'popup.php')]")).click();			
        		
        String MainWindow=driver.getWindowHandle();		
        		
        // To handle all new opened window.				
            Set<String> s1=driver.getWindowHandles();		
        Iterator<String> i1=s1.iterator();		
        		
        while(i1.hasNext())			
        {		
            String ChildWindow=i1.next();		
            		
            if(!MainWindow.equalsIgnoreCase(ChildWindow))			
            {    		
                 
                    // Switching to Child window
                    driver.switchTo().window(ChildWindow);	                                                                                                           
                    driver.findElement(By.name("emailid"))
                    .sendKeys("gaurav.3n@gmail.com");                			
                    
                    driver.findElement(By.name("btnLogin")).click();			
                                 
			// Closing the Child Window.
                        driver.close();		
            }		
        }		
        // Switching to Parent window i.e Main Window.
            driver.switchTo().window(MainWindow);				
    }
}		

Output:

เมื่อคุณรันโค้ดด้านบน เว็บไซต์จะเปิดขึ้น และเมื่อคลิกลิงก์ "คลิกที่นี่" หน้าต่างย่อยจะเปิดขึ้นในแท็บใหม่ คุณสามารถปิดหน้าต่างย่อยและสลับไปที่หน้าต่างหลักได้เมื่อดำเนินการเสร็จสิ้น ดังนั้นจึงสามารถจัดการหน้าต่างมากกว่าหนึ่งหน้าต่างในแอปพลิเคชันได้

การจัดการหลายหน้าต่างใน Selenium
การจัดการหลายหน้าต่างใน Selenium

สรุป

  • เรากำหนดประเภทของการแจ้งเตือนและแสดงด้วยภาพหน้าจอ
  • สาธิตการจัดการกับการแจ้งเตือนด้วย Selenium WebDriver ใช้สถานการณ์เฉพาะ
  • จัดการหน้าต่างหลายบานด้วย Selenium WebDriver ใช้สถานการณ์เฉพาะ

อ่านเพิ่มเติม readmore

จดหมายข่าว Guru99 รายวัน

เริ่มต้นวันใหม่ของคุณด้วยข่าวสาร AI ล่าสุดและสำคัญที่สุดที่ส่งมอบทันที