Đó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
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.
Google
abodeQA
Red
Green
Yellow
Grey
|
Apple
Orange
Mango
Lime
|
Select
Elephant
Mouse
Dog
|
Click the button to display a confirm box.
Try it
function myFunction[]
{
confirm["Press a button!"];
}
|
Kịch bản được tự động hóa
- Khởi chạy trình duyệt web và mở trang web
- Nhấp vào nút “Dùng thử”
- Chấp nhận cảnh báo
- Nhấp vào nút “Thử lại” lần nữa
- Từ chối cảnh báo
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”
Bước 2. Sao chép và dán mã bên dưới vào “DemoWebAlert. lớp java”
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
Cảnh báo cảnh báo = trình điều khiển. chuyển sang[]. báo động[];
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
Tài xế. chuyển sang[]. báo động[];
Lệnh trên được sử dụng để chuyển điều khiển sang cửa sổ bật lên được tạo gần đây
Chấp nhận cảnh báo
báo động. Chấp nhận[];
Lệnh trên chấp nhận cảnh báo do đó nhấp vào nút Ok
Từ chối cảnh báo
báo động. bỏ qua[];
Lệnh trên đóng cảnh báo do đó nhấp vào nút Hủy và do đó thao tác sẽ không tiếp tục
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
- Khởi chạy trình duyệt web và mở ứng dụng – “gmail. com”
- Nhập tên người dùng và mật khẩu hợp lệ
- Bấm vào nút đăng nhập
- Bấm vào nút soạn
- Bấm vào biểu tượng đính kèm
- Chọn các tệp sẽ được tải lên với cửa sổ bật lên dựa trên cửa sổ
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”
Bước 2. Sao chép và dán mã bên dưới vào “DemoWindowAlert. lớp java”
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["//gmail.com"];
driver.manage[].window[].maximize[];
}
@Test
public void testWindowAlert[] throws Exception{
// enter a valid email address
driver.findElement[By.id["Email"]].sendKeys["TestSelenium1607@gmail.com"];
// 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
Robot rb =Robot mới[];
Chúng ta tạo một biến tham chiếu cho lớp Robot và khởi tạo nó
Sự kiện KeyPress và KeyRelease
rb. keyPress[KeyEvent. VK_D];
rb. keyRelease[KeyEvent. VK_D];
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ận
Trong 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
- Cảnh báo là 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 đó
- Có hai loại cảnh báo phổ biến–
- Cửa sổ bật lên cảnh báo dựa trên Windows
- Cửa sổ bật lên cảnh báo dựa trên web
- Trước khi viết tập lệnh thực tế, chúng ta cần nhập một gói để có thể tạo tập lệnh WebDriver để xử lý trình đơn thả xuống và làm cho lớp Chọn có thể truy cập được
- 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
- void bỏ[] – Phương thức bỏ qua[] nhấp vào nút “Hủy” ngay khi cửa sổ bật lên xuất hiện
- void accept[] – Phương thức accept[] nhấp vào nút “Ok” ngay khi cửa sổ bật lên xuất hiện
- Chuỗi getText[] – Phương thức getText[] trả về văn bản được hiển thị trên hộp cảnh báo
- void sendKeys[String stringToSend] – Phương thức sendKeys[] nhập mẫu chuỗi đã chỉ định vào hộp cảnh báo
- Xử lý các cửa sổ bật lên dựa trên cửa sổ luôn gặp một chút khó khăn vì chúng ta biết Selenium là một công cụ kiểm tra tự động hóa 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ố đó
- 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 và có thể được sử dụng một cách hiệu quả để xử lý cửa sổ bật lên dựa trên cửa sổ với sự trợ giúp của các sự kiện bàn phím
- 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
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[].