วิธีจัดการการแจ้งเตือนและป๊อปอัปใน Selenium?
Alert มีอะไรบ้าง Selenium?
An แจ้งเตือนเข้า. Selenium เป็นกล่องข้อความขนาดเล็กที่ปรากฏบนหน้าจอเพื่อแจ้งข้อมูลหรือแจ้งเตือนผู้ใช้ โดยจะแจ้งข้อมูลเฉพาะหรือข้อผิดพลาดบางอย่างให้ผู้ใช้ทราบ ขออนุญาตดำเนินการบางอย่าง และยังแสดงข้อความเตือนด้วย
ในบทช่วยสอนนี้ เราจะได้เรียนรู้วิธีจัดการป๊อปอัป Selenium และการแจ้งเตือนประเภทต่างๆ ที่พบในเว็บแอปพลิเคชัน การทดสอบ- เราจะดูวิธีจัดการกับ Alert ด้วย Selenium WebDriver และเรียนรู้วิธีที่เราจะยอมรับและปฏิเสธการแจ้งเตือนโดยขึ้นอยู่กับประเภทการแจ้งเตือน
ประเภทของการแจ้งเตือนใน Selenium
1) Simple Alert
คลาสการแจ้งเตือนแบบง่ายใน Selenium แสดงข้อมูลหรือคำเตือนบางอย่างบนหน้าจอ
2) Prompt Alert
แจกันดอกไม้โรแมนติกนี้ Prompt Alert ถามข้อมูลบางอย่างจากผู้ใช้และ Selenium webdriver สามารถป้อนข้อความโดยใช้ sendkeys(” input…. “)
3) 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() วิธี
ตอนนี้เราทำสถานการณ์ที่กำหนดด้านล่างโดยอัตโนมัติ
ในสถานการณ์นี้ เราจะใช้ไซต์สาธิต Guru99 เพื่อแสดงตัวอย่าง Selenium การจัดการการแจ้งเตือน
ขั้นตอน 1) เปิดเว็บเบราว์เซอร์และเปิดไซต์ https://demo.guru99.com/test/delete_customer.php
ขั้นตอน 2) ป้อนรหัสลูกค้าใดๆ
ขั้นตอน 3) หลังจากกรอกรหัสลูกค้าแล้ว ให้คลิกที่ปุ่ม “ส่ง”
ขั้นตอน 4) ปฏิเสธ/ยอมรับการแจ้งเตือน
การจัดการการแจ้งเตือนใน 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
ขั้นตอน 2) คลิกที่ลิงค์ “คลิกที่นี่”
เมื่อผู้ใช้คลิกที่ลิงค์ ” คลิกที่นี่ ” หน้าต่างลูกใหม่จะเปิดขึ้น
ขั้นตอน 3) หน้าต่างลูกใหม่จะเปิดขึ้น
หน้าต่างใหม่จะเปิดขึ้น ขอให้ผู้ใช้ป้อนรหัสอีเมล์และส่งหน้า
ขั้นตอน 4) กรอกรหัสอีเมล์ของคุณและส่ง
ขั้นตอน 5) แสดงข้อมูลรับรองการเข้าถึงเมื่อส่งเพจ
เมื่อคุณรันโค้ด คุณจะเห็นหน้าต่างลูกเปิดอยู่ในแท็บใหม่
- ปิดหน้าต่างย่อยที่แสดงข้อมูลประจำตัว
- สลับไปที่หน้าต่างหลัก
วิธีจัดการกับหลายรายการ 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 WebDriver ใช้สถานการณ์เฉพาะ
- จัดการหน้าต่างหลายบานด้วย Selenium WebDriver ใช้สถานการณ์เฉพาะ














