Đóng cửa sổ bật lên selen python
Trong hướng dẫn trước, chúng tôi đã tập trung thảo luận về các loại chờ đợi khác nhau do WebDriver cung cấp. Chúng tôi cũng đã thảo luận về các loại tùy chọn điều hướng có sẵn trong WebDriver Show Tiếp tục trong Hướng dẫn về Selenium WebDriver, chúng ta sẽ thảo luận về các loại cảnh báo khác nhau có sẵn trong khi thử nghiệm các ứng dụng web và chiến lược xử lý của chúng. Có hai loại cảnh báo mà chúng tôi sẽ tập trung chủ yếu vào
Như chúng tôi biết rằng việc xử lý cửa sổ bật lên dựa trên cửa sổ nằm ngoài khả năng của WebDriver, do đó chúng tôi sẽ sử dụng một số tiện ích của bên thứ ba để xử lý cửa sổ bật lên Xử lý cửa sổ bật lên là một trong những phần công việc khó khăn nhất để tự động hóa trong khi thử nghiệm các ứng dụng web. Do sự đa dạng trong các loại cửa sổ bật lên, tình hình thậm chí còn phức tạp hơn Hộp thông báo/ Hộp bật lên/ Hộp xác nhận/ Lời nhắc/ Hộp xác thực là gì? Nó không là gì ngoài một hộp nhỏ xuất hiện trên màn hình hiển thị để cung cấp cho bạn một số loại thông tin hoặc để cảnh báo bạn về một thao tác có khả năng gây hại hoặc thậm chí nó có thể yêu cầu bạn cấp quyền cho thao tác đó Thí dụ. Chúng ta hãy xem xét một ví dụ thực tế để hiểu rõ hơn; . Sau này, tôi muốn xóa bức ảnh đã tải lên. Vì vậy, để xóa, tôi đã nhấp vào nút xóa. Ngay khi tôi nhấp vào nút xóa, hệ thống sẽ cảnh báo tôi về hành động của mình, nhắc nhở - Bạn có thực sự muốn xóa tệp không? Vì vậy, trước phiên, hãy xem cách chúng tôi từ chối hoặc chấp nhận các cảnh báo tùy thuộc vào loại của chúng. Bắt đầu với cửa sổ bật lên dựa trên web Bạn sẽ học được gì Cửa sổ bật lên dựa trên webHãy để chúng tôi xem cách chúng tôi xử lý chúng bằng WebDriver Xử lý hộp bật lên dựa trên web WebDriver cung cấp cho người dùng một cách rất hiệu quả để xử lý các cửa sổ bật lên này bằng giao diện Cảnh báo Có thể bạn quan tâmCó bốn phương thức mà chúng tôi sẽ sử dụng cùng với giao diện Cảnh báo 1) bỏ trống () – Phương thức loại bỏ () nhấp vào nút “Hủy” ngay khi cửa sổ bật lên xuất hiện Hãy để chúng tôi tiếp tục và xem xét việc triển khai thực tế Giải thích về ứng dụng đang thử nghiệm Chúng tôi đã thiết kế một trang web theo cách bao gồm một số loại phần tử web cơ bản. Đây là cùng một ứng dụng mà chúng tôi đã giới thiệu khi thảo luận về Chọn lớp trước đó trong loạt bài này
(Click vào hình để xem phóng to)
Tiếp theo là mã HTML được sử dụng để tạo trang web nêu trên
Kịch bản được tự động hóa
Mã WebDriver sử dụng Chọn lớp Xin lưu ý rằng để tạo tập lệnh, chúng tôi sẽ sử dụng dự án “Learning_Selenium” được tạo trong hướng dẫn trước Bước 1. Tạo một lớp java mới có tên là “DemoWebAlert” trong dự án “Learning_Selenium” Dưới đây là kịch bản thử nghiệm tương đương với kịch bản nêu trên import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; /** * class description */ public class DemoWebAlert { WebDriver driver; /** * Constructor */ public DemoWebAlert() { } /** * Set up browser settings and open the application */ @Before public void setUp() { driver=new FirefoxDriver(); // Opened the application driver.get("file:///F:/Work/Selenium/Testing-Presentation/DemoWebPopup.htm"); driver.manage().window().maximize(); } /** * Test to check Select functionality * @throws InterruptedException */ @Test public void testWebAlert() throws InterruptedException { // clicking on try it button driver.findElement(By.xpath("//button[contains(text(),'Try it')]")).click(); Thread.sleep(5000); // accepting javascript alert Alert alert = driver.switchTo().alert(); alert.accept(); // clicking on try it button driver.findElement(By.xpath("//button[contains(text(),'Try it')]")).click(); Thread.sleep(5000); // accepting javascript alert driver.switchTo().alert().dismiss(); // clicking on try it button driver.findElement(By.xpath("//button[contains(text(),'Try it')]")).click(); Thread.sleep(5000); // accepting javascript alert System.out.println(driver.switchTo().alert().getText()); driver.switchTo().alert().accept(); } /** * Tear down the setup after test completes */ @After public void tearDown() { driver.quit(); } } Hướng dẫn mã Báo cáo nhập khẩu Nhập tổ chức. openqa. selen. Cảnh báo – Nhập gói này trước khi tạo tập lệnh Gói tham chiếu đến lớp Cảnh báo được yêu cầu để xử lý các cảnh báo dựa trên web trong WebDriver Tạo đối tượng cho lớp Cảnh báo Chúng tôi tạo một biến tham chiếu cho lớp Cảnh báo và tham chiếu nó đến cảnh báo Chuyển sang Cảnh báo Chấp nhận cảnh báo Từ chối cảnh báo Cửa sổ bật lên dựa trên cửa sổĐôi khi trong khi tự động hóa, chúng tôi gặp một số tình huống, trong đó chúng tôi cần xử lý cửa sổ bật lên do cửa sổ tạo ra như cửa sổ in bật lên hoặc cửa sổ duyệt trong khi tải tệp lên Cũng đọc =>> Cách xử lý tệp tải lên trong Selenium Việc xử lý các cửa sổ bật lên này luôn gặp một chút khó khăn vì chúng tôi biết Selenium là một công cụ kiểm tra tự động chỉ hỗ trợ kiểm tra ứng dụng web, điều đó có nghĩa là nó không hỗ trợ các ứng dụng dựa trên cửa sổ và cảnh báo cửa sổ là một trong số đó. Tuy nhiên, một mình Selenium không thể giúp giải quyết tình hình nhưng cùng với sự can thiệp của bên thứ ba, vấn đề này có thể được khắc phục Có một số công cụ của bên thứ ba có sẵn để xử lý cửa sổ bật lên dựa trên cửa sổ cùng với Selenium Vì vậy, bây giờ hãy xử lý một cửa sổ bật lên dựa trên lớp Robot Lớp robot là một tiện ích dựa trên java mô phỏng các thao tác của bàn phím và chuột Trước khi tiếp tục, chúng ta hãy dành một chút thời gian để xem qua ứng dụng đang được thử nghiệm (AUT) Giải thích về ứng dụng đang thử nghiệm Là một ứng dụng đang được thử nghiệm, chúng tôi sẽ sử dụng “gmail. com”. Tôi tin rằng ứng dụng không yêu cầu bất kỳ lời giới thiệu nào nữa Kịch bản được tự động hóa
Mã WebDriver sử dụng Lớp Robot Xin lưu ý rằng để tạo tập lệnh, chúng tôi sẽ sử dụng dự án “Learning_Selenium” được tạo trong hướng dẫn trước Bước 1. Tạo một lớp java mới có tên là “DemoWindowAlert” trong dự án “Learning_Selenium” Dưới đây là kịch bản thử nghiệm tương đương với kịch bản nêu trên import java.awt.Robot;import java.awt.event.KeyEvent; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class DemoWindowAlert { WebDriver driver; @Before public void setUp() { driver=new FirefoxDriver(); driver.get("https://gmail.com"); driver.manage().window().maximize(); } @Test public void testWindowAlert() throws Exception{ // enter a valid email address driver.findElement(By.id("Email")).sendKeys("[email protected]"); // enter a valid password driver.findElement(By.id("Passwd")).sendKeys("TestSelenium"); // click on sign in button driver.findElement(By.id("signIn")).click(); Thread.sleep(30000); // click on compose button driver.findElement(By.xpath("//div[@class='z0']//div[contains(text(),'COMPOSE')]")).click(); // click on attach files icon driver.findElement(By.xpath("//div[contains(@command,'Files')]//div[contains(@class,'aaA')]")).click(); // creating instance of Robot class (A java based utility) Robot rb =new Robot(); // pressing keys with the help of keyPress and keyRelease events rb.keyPress(KeyEvent.VK_D); rb.keyRelease(KeyEvent.VK_D); Thread.sleep(2000); rb.keyPress(KeyEvent.VK_SHIFT); rb.keyPress(KeyEvent.VK_SEMICOLON); rb.keyRelease(KeyEvent.VK_SEMICOLON); rb.keyRelease(KeyEvent.VK_SHIFT); rb.keyPress(KeyEvent.VK_BACK_SLASH); rb.keyRelease(KeyEvent.VK_BACK_SLASH); Thread.sleep(2000); rb.keyPress(KeyEvent.VK_P); rb.keyRelease(KeyEvent.VK_P); rb.keyPress(KeyEvent.VK_I); rb.keyRelease(KeyEvent.VK_I); rb.keyPress(KeyEvent.VK_C); rb.keyRelease(KeyEvent.VK_C); Thread.sleep(2000); rb.keyPress(KeyEvent.VK_ENTER); rb.keyRelease(KeyEvent.VK_ENTER); Thread.sleep(2000); } @After public void tearDown() { driver.quit(); } } Hướng dẫn mã Báo cáo nhập khẩu nhập java. awt. Robot – Nhập gói này trước khi tạo tập lệnh Gói tham chiếu đến lớp Robot trong java được yêu cầu mô phỏng các sự kiện bàn phím và chuột nhập java. awt. biến cố. KeyEvent – Gói cho phép người dùng sử dụng các sự kiện keyPress và keyRelease của bàn phím Tạo đối tượng cho lớp Robot Sự kiện KeyPress và KeyRelease Các phương thức keyPress và keyRelease mô phỏng người dùng nhấn và nhả một phím nhất định trên bàn phím tương ứng Phần kết luậnTrong hướng dẫn này, chúng tôi đã cố gắng giúp bạn làm quen với lớp Cảnh báo của WebDriver được sử dụng để xử lý các cửa sổ bật lên dựa trên web. Chúng tôi cũng đã thông báo cho bạn về lớp Robot có thể được sử dụng để điền giá trị vào cảnh báo dựa trên cửa sổ với sự trợ giúp của các sự kiện keyPress và keyRelease Tóm tắt bài viết
Hướng dẫn tiếp theo #17 . Trong hướng dẫn sắp tới, chúng ta sẽ thảo luận về các lệnh WebDriver thường được sử dụng khác. Chúng tôi sẽ làm sáng tỏ các chủ đề như xử lý ngoại lệ và xử lý khung nội tuyến. Chúng tôi cũng sẽ thảo luận về các lệnh nhận được cung cấp trong WebDriver. Chúng tôi sẽ giải thích các chủ đề này bằng các ví dụ nhanh để người đọc dễ hiểu khi thực hiện các khái niệm này trong kịch bản hàng ngày của họ Lưu ý dành cho người đọc. Cho đến lúc đó, hãy tiếp tục theo dõi và tự động hóa các trang web có cửa sổ bật lên dựa trên web và dựa trên cửa sổ bằng tiện ích WebDriver – “Lớp cảnh báo” và tiện ích Java – “Lớp Robot” Vui lòng đăng truy vấn/nhận xét của bạn về điều này hoặc bất kỳ hướng dẫn nào khác trước đó trong các nhận xét bên dưới Làm cách nào để đóng cửa sổ bật lên trong Selenium Python?Để loại bỏ cửa sổ bật lên, phương thức switch_to. cảnh báo(). dismiss() được sử dụng. Để có được văn bản trên cửa sổ bật lên, chúng ta phải sử dụng switch_to.
Làm cách nào để đóng cửa sổ bật lên trong Selenium?Trong Selenium, một lớp robot được sử dụng để xử lý các chức năng của bàn phím và chuột . Nó được sử dụng để đóng cửa sổ bật lên. Bạn có thể lấy tay cầm cửa sổ của cửa sổ bật lên bằng hàm WindowHandle(). |