Đó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

    1. Khởi chạy trình duyệt web và mở trang web
    2. Nhấp vào nút “Dùng thử”
    3. Chấp nhận cảnh báo
    4. Nhấp vào nút “Thử lại” lần nữa
    5. 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

    1. Khởi chạy trình duyệt web và mở ứng dụng – “gmail. com”
    2. Nhập tên người dùng và mật khẩu hợp lệ
    3. Bấm vào nút đăng nhập
    4. Bấm vào nút soạn
    5. Bấm vào biểu tượng đính kèm
    6. 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

    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[].

    Chủ Đề