Lớp Robot ở Selenium webdriver
Lớp Robot là gì Selenium?
Lớp robot in Selenium được sử dụng để cho phép thử nghiệm tự động để triển khai Java nền tảng. Nó tạo ra các sự kiện đầu vào trong hệ thống gốc để tự động hóa thử nghiệm, các bản demo 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ễ triển khai và có thể dễ dàng tích hợp với khung 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ố trường hợp nhất định Selenium Kiểm tra tự động, người dùng cần kiểm soát bàn phím hoặc chuột để tương tác với cửa sổ hệ điều hành như tải xuống cửa sổ bật lên, in cửa sổ bật lên, v.v. và các ứng dụng gốc như sổ ghi chép, 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 Java phiên bản 1.3, lớp robot được giới thiệu có thể xử lý các ứng dụng/cửa sổ bật lên của hệ điều hành.
Tài liệu lớp Robot
Sản phẩm Tài liệu lớp Robot in Selenium giúp người dùng hiểu định nghĩa, cú pháp và cách sử dụng cơ bản của tất cả các phương thức và hàm có sẵn trong lớp robot trong Java gói AWT. Người dùng có thể xem tài liệu trên Chính thức Oracle trang mạng. 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à gõ 'javadoc *.java' như hiển thị bên dưới
Đợi một lúc để hệ thống xử lý, sau khi hoàn tất bạn sẽ thấy vài file HTML trong thư mục awt.
Bước 5) Mở chỉ mục.html
Bước 6) Đây là tài liệu đầy đủ 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 ở hình trên).
Phương pháp lớp Robot trong Selenium và Cách sử dụng
Các phương thức của 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 tự động hóa có thể sử dụng được, nhưng nhược điểm của nó là tạo ra một file thực thi (exe) chỉ chạy được trên Windows, do đó không phải là lựa chọn tốt.
Một số phương thức được sử dụng phổ biến và phổ biến của Robot Class trong quá trình tự động hóa web:
Cách 1: keyPress():
robot.keyPress(KeyEvent.VK_DOWN): Phương thức này nhấn phím mũi tên xuống của Bàn phím
Cách 2: mousePress():
robot.mousePress(InputEvent.BUTTON3_DOWN_MASK): Phương pháp này sẽ nhấn chuột phải vào.
Cách 3: mouseMove():
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 đã chỉ định.
Phương pháp 4: keyRelease():
robot.keyRelease(KeyEvent.VK_DOWN): Phương thức này nhả phím mũi tên xuống của Bàn phím
Cách 5: mouseRelease():
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 Lớp Robot
- 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 thành phần 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ý vấn đề 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, chẳng hạn như Robot robot = Robot mới()) . Lớp robot chúng tôi hiện diện trong gói AWT của JDK.
Phím bàn phím | Phương pháp |
---|---|
Để nhấn phím mũi tên xuống | chúng tôi sử dụng (robot.keyPress(KeyEvent.VK_DOWN)) |
Để nhấn phím TAB | 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)) |
Ví dụ về lớp Robot trong Selenium
import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; class Excercise1 { public static void main(String[] args) throws AWTException, InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get("http://spreadsheetpage.com/index.php/file/C35/P10/"); // sample url driver.findElement(By.xpath(".//a[@href=contains(text(),'yearly-calendar.xls')]")).click(); Robot robot = new Robot(); // Robot class throws AWT Exception Thread.sleep(2000); // Thread.sleep throws InterruptedException robot.keyPress(KeyEvent.VK_DOWN); // press arrow down key of keyboard to navigate and select Save radio button Thread.sleep(2000); // sleep has only been used to showcase each event separately robot.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); // press enter key of keyboard to perform above selected action } }
Kiểm tra video này để xem nó hoạt động
Cách thực thi mã Lớp Robot bằng cách sử dụng TestNG
Bây giờ bạn đã biết các phương thức cơ bản của Lớp Robot, hãy cùng tìm hiểu thêm 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 chuột để 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 biểu thị trục x và 420 biểu thị 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 điểm giao nhau x và y được đề 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 pháp chuộtNhấn Lượt thích 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) để nhả chuột trái.
Chạy mã bằng testNG:
Chạy mã bằng cách sử dụng Kiểm tra yêu cầu phụ thuộc maven của testNG hoặc thư viện được tham chiếu của TestNG tập tin jar.
TestNG phụ thuộc maven:
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.1.1</version> </dependency>
Sau khi thêm phụ thuộc maven hoặc tệp jar. Bạn cần nhập chú thích Test của testNG. Khi mọi thứ đã 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 Chạy dưới dạng sau đó nhấp vào TestNG… và bạn sẽ thấy mã sẽ bắt đầu thực thi bằng API testNG.
Đây là mã
import java.awt.AWTException; import java.awt.Robot; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.annotations.Test; public class Excersise1 { @Test public static void execution() throws InterruptedException, AWTException { WebDriver driver = new FirefoxDriver(); driver.manage().window().maximize(); driver.get("http://spreadsheetpage.com/index.php/file/C35/P10/"); // sample url Robot robot = new Robot(); robot.mouseMove(630, 420); // move mouse point to specific location robot.delay(1500); // delay is to make code wait for mentioned milliseconds before executing next step robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); // press left click robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); // release left click robot.delay(1500); robot.keyPress(KeyEvent.VK_DOWN); // press keyboard arrow key to select Save radio button Thread.sleep(2000); robot.keyPress(KeyEvent.VK_ENTER); // press enter key of keyboard to perform above selected action } }
Kiểm tra video này để xem nó hoạt động
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
- Lớp Robot có thể giúp tải lên/tải xuống các tệp khi sử dụng trình điều khiển web Selenium
- 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, dựa trên dữ liệu hoặc kết hợp)
Nhược điểm của lớp Robot
Khung robot 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 nào của lớp robot 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 đều phụ thuộc vào độ phân giải màn hình nên có thể mã hoạt động trên một máy có thể không hoạt động trên máy khác.
Tổng kết
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 hệ điều hành Windows và các ứng dụng gốc.
Mục đích chính của Robot là hỗ trợ dự án thử nghiệm tự động selenium được xây dựng trong Java nền tảng