Lớp Robot
Lớp Robot trong Selenium được sử dụng để cho phép tự động kiểm tra việc triển khai nền tảng Java. Nó tạo ra các sự kiện đầu vào trong các hệ thống gốc để tự động hóa kiểm tra, các bản trình diễn tự chạy và các ứng dụng khác mà người dùng cần kiểm soát chuột và bàn phím. Lớp robot rất dễ thực hiện và nó có thể được tích hợp dễ dàng với một khuôn khổ tự động.
Tại sao lại là lớp Robot?
Lớp Robot được sử dụng trong Selenium bởi vì, trong một số thử nghiệm tự động hóa Selenium, người dùng cần điều khiển bàn phím hoặc chuột để tương tác với các cửa sổ hệ điều hành như cửa sổ bật lên tải xuống, cửa sổ bật lên in, v.v. và các ứng dụng gốc như notepad, máy tính, v.v. Selenium Webdriver không thể xử lý các cửa sổ bật lên / ứng dụng này, vì vậy trong phiên bản Java 1.3, lớp robot đã được giới thiệu có thể xử lý cửa sổ bật lên / ứng dụng hệ điều hành.
Trong hướng dẫn này, bạn sẽ học,
- Lợi ích của Lớp Robot
- Tài liệu về Lớp Robot
- Tìm hiểu các phương pháp và cách sử dụng nội bộ Lớp Robot
- Cách thực thi mã lớp robot bằng testNG
- Nhược điểm của Lớp Robot
Lợi ích của Lớp Robot
- Lớp Robot có thể mô phỏng sự kiện Bàn phím và Chuột
- Robot Class có thể giúp tải lên / tải xuống tệp khi sử dụng trình điều khiển web selen
- Lớp Robot có thể dễ dàng được tích hợp với khung tự động hóa hiện tại (từ khóa, hướng dữ liệu hoặc kết hợp)
Tài liệu Lớp học Robot là gì?
Các tài liệu Robot Lớp trong Selenium giúp người dùng hiểu được những nét cơ bản, cú pháp và sử dụng tất cả các phương pháp và chức năng có sẵn trong lớp robot trong gói Java AWT. Người dùng có thể xem tài liệu trên trang web Chính thức của Oracle. Người dùng cũng có thể tự tạo tài liệu trên máy cục bộ của mình.
Để tạo tài liệu trên máy cục bộ, hãy làm theo các bước bên dưới-
Bước 1) Bạn sẽ tìm thấy tệp src.zip trong thư mục JDK. Sao chép src.zip và giải nén tương tự trong một số thư mục hoặc thư mục khác (giả sử D: hoặc E:)
Bước 2) Giải nén thư mục src và điều hướng đến (đường dẫn đến thư mục src) / src / java / awt
Bước 3) Sao chép vị trí hiện tại của thư mục awt và mở dấu nhắc lệnh.
Bước 4) Trong cmd, thay đổi vị trí thư mục hiện tại của bạn thành thư mục awt và nhập 'javadoc * .java' như hình dưới đây
Chờ một lúc để hệ thống xử lý, sau khi hoàn tất, bạn sẽ thấy một vài tệp HTML trong thư mục awt.
Bước 5) Mở index.html
Bước 6) Đây là bạn có đầy đủ tài liệu về gói awt, từ thanh điều hướng bên trái nhấp vào siêu liên kết 'Robot' (Xem 1 được đánh dấu trong hình ảnh bên dưới).
Tại đây bạn cũng có thể xem tất cả các phương thức và giao diện của Lớp Robot (Xem 2 được đánh dấu trong hình trên).
Tìm hiểu các phương pháp và cách sử dụng nội bộ Lớp Robot
Các phương thức Lớp Robot có thể được sử dụng để tương tác với các sự kiện bàn phím / chuột trong khi thực hiện tự động hóa trình duyệt. Ngoài ra, có thể sử dụng AutoIT, nhưng nhược điểm của nó là nó tạo ra một tệp thực thi (exe) sẽ chỉ hoạt động trên windows, vì vậy nó không phải là một lựa chọn tốt để sử dụng.
Một số phương pháp phổ biến và được sử dụng phổ biến của Lớp Robot trong quá trình tự động hóa web:
- keyPress (): Ví dụ: robot.keyPress (KeyEvent.VK_DOWN): Phương pháp này với việc nhấn phím mũi tên xuống của Bàn phím
- mousePress (): Ví dụ : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Phương pháp này sẽ nhấn chuột phải của bạn.
- mouseMove (): Ví dụ : robot.mouseMove (point.getX (), point.getY ()): Thao tác này sẽ di chuyển con trỏ chuột đến tọa độ X và Y được chỉ định.
- keyRelease (): Ví dụ: robot.keyRelease (KeyEvent.VK_DOWN): Phương thức này với việc thả phím mũi tên xuống của Bàn phím
- mouseRelease (): Ví dụ: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Phương thức này sẽ giải phóng nhấp chuột phải của bạn
Mã mẫu để tự động hóa các trường hợp sử dụng phổ biến bằng Robot Class
- Hãy lấy ví dụ về trang web http://spreadsheetpage.com/index.php/file/C35/P10/ trong đó sau khi bạn nhấp vào một phần tử web ( .//a[@href=contains(text(),'yearly- Calendar.xls '] ) một cửa sổ bật lên tải xuống hệ điều hành sẽ xuất hiện.
- Để xử lý điều này, chúng tôi sử dụng lớp Robot (bằng cách tạo một phiên bản của Lớp Robot trong mã của bạn, giả sử Robot robot = new Robot () ). Lớp robot chúng tôi trình bày trong gói AWT của JDK.
- Để nhấn phím mũi tên xuống của Bàn phím, chúng tôi sử dụng ( robot.keyPress (KeyEvent.VK_DOWN))
- Để nhấn phím TAB của bàn phím (chúng tôi sử dụng robot.keyPress (KeyEvent.VK_TAB))
- Để nhấn phím Enter, chúng tôi sử dụng ( robot.keyPress (KeyEvent.VK_ENTER)).
Đây là một mã mẫu
nhập java.awt.AWTException;nhập java.awt.Robot;nhập java.awt.event.KeyEvent;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.firefox.FirefoxDriver;lớp Excercise1 {public static void main (String [] args) ném AWTException, InterruptException {Trình điều khiển WebDriver = mới FirefoxDriver ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // url mẫudriver.findElement (By.xpath (".// a [@ href = chứa (text (), 'yearly-calendar.xls')]")). click ();Người máy rô bốt = new Robot (); // Lớp robot ném AWT ExceptionThread.sleep (2000); // Thread.sleep ném InterruptExceptionrobot.keyPress (KeyEvent.VK_DOWN); // nhấn phím mũi tên xuống của bàn phím để điều hướng và chọn Lưu nút radioThread.sleep (2000); // sleep chỉ được sử dụng để giới thiệu từng sự kiện riêng biệtrobot.keyPress (KeyEvent.VK_TAB);Thread.sleep (2000);robot.keyPress (KeyEvent.VK_TAB);Thread.sleep (2000);robot.keyPress (KeyEvent.VK_TAB);Thread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// nhấn phím enter của bàn phím để thực hiện hành động đã chọn ở trên}}
Kiểm tra video này để xem nó hoạt động
Cách thực thi mã Lớp Robot bằng TestNG
Vì bây giờ bạn đã biết về các phương thức cơ bản của Lớp Robot, vì vậy chúng ta hãy hiểu một số phương thức phức tạp hơn -
Giả sử bạn không muốn sử dụng phương pháp nhấp để nhấp vào phần tử web.
Trong những trường hợp như vậy, bạn có thể sử dụng phương thức mouseMove của lớp Robot.
Bước 1) Phương thức mouseMove lấy tọa độ x và y làm tham số như robot.mouseMove (630, 420) trong đó 630 chỉ trục x và 420 chỉ trục y. Vì vậy, phương pháp này sẽ di chuyển con trỏ chuột của bạn từ vị trí hiện tại đến giao điểm x và y đã đề cập.
Bước 2) Tiếp theo, chúng ta cần nhấn nút chuột. Chúng ta có thể sử dụng phương thức mousePress như robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .
Bước 3) Sau khi nhấn, chuột cần được thả ra. Chúng ta có thể sử dụng robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ) để giải phóng nhấp chuột trái của chuột.
Chạy mã bằng testNG:
Chạy mã bằng Testng yêu cầu sự phụ thuộc maven của testNG hoặc thư viện tham chiếu của tệp jar TestNG.
TestNG maven phụ thuộc:
org.testng testng 6.1.1
Sau khi thêm phụ thuộc maven hoặc tệp jar. Bạn cần nhập Chú thích kiểm tra của testNG. Khi tất cả đã hoàn tất, chỉ cần nhấp chuột phải vào mã chương trình và nhấp vào Run As sau đó nhấp vào TestNG
… Và bạn sẽ thấy rằng mã sẽ bắt đầu thực thi bằng API testNG.Đây là mã
nhập java.awt.AWTException;nhập java.awt.Robot;nhập java.awt.event.InputEvent;nhập java.awt.event.KeyEvent;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.firefox.FirefoxDriver;nhập org.testng.annotations.Test;lớp công khai Ex testsise1 {@Kiểm trapublic static void execute () ném InterruptException, AWTException {Trình điều khiển WebDriver = mới FirefoxDriver ();driver.manage (). window (). Maxim ();driver.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // url mẫuNgười máy rô bốt = new Robot ();robot.mouseMove (630, 420); // di chuyển con trỏ chuột đến vị trí cụ thểrobot.delay (1500); // delay là làm cho mã đợi trong vài mili giây được đề cập trước khi thực hiện bước tiếp theorobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // nhấn chuột tráirobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // nhả nhấp chuột tráirobot.delay (1500);robot.keyPress (KeyEvent.VK_DOWN); // nhấn phím mũi tên trên bàn phím để chọn Lưu nút radioThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// nhấn phím enter của bàn phím để thực hiện hành động đã chọn ở trên}}
Kiểm tra video này để xem nó hoạt động
Nhược điểm của Lớp Robot
Robot framwork có một số nhược điểm được đề cập dưới đây:
- Sự kiện từ khóa / chuột sẽ chỉ hoạt động trên phiên bản hiện tại của Window. Ví dụ: giả sử một mã đang thực hiện bất kỳ sự kiện lớp rô bốt nào và trong quá trình thực thi mã, người dùng đã chuyển sang một số màn hình khác thì sự kiện từ khóa / chuột sẽ xảy ra trên màn hình đó.
- Hầu hết các phương pháp như mouseMove phụ thuộc vào độ phân giải màn hình, vì vậy có thể có khả năng mã hoạt động trên một máy có thể không hoạt động trên máy khác.
Tóm lược
Lớp robot trong gói AWT được sử dụng để tạo các sự kiện bàn phím / chuột để tương tác với các cửa sổ hệ điều hành và ứng dụng gốc.
Mục đích chính của Robot là hỗ trợ xây dựng dự án kiểm tra tự động selen trên nền tảng Java
Bài viết này được đóng góp bởi Ramandeep Singh, một kỹ sư tự động hóa thử nghiệm tại một MNC hàng đầu.