Nhấp chuột & Sự kiện bàn phím: Lớp hành động trong Selenium Webdriver

Mục lục:

Anonim

Trong hướng dẫn này, chúng ta sẽ học cách xử lý Sự kiện bàn phím và chuột trong Selenium Webdriver

Lớp hành động trong Selenium

Action Class trong Selenium là một tính năng tích hợp được cung cấp bởi selen để xử lý các sự kiện bàn phím và chuột. Nó bao gồm các hoạt động khác nhau như nhiều sự kiện nhấp bằng phím điều khiển, kéo và thả các sự kiện và nhiều hơn nữa. Các hoạt động này từ lớp hành động được thực hiện bằng cách sử dụng API tương tác người dùng nâng cao trong Selenium Webdriver.

Xử lý sự kiện bàn phím & chuột

Xử lý các sự kiện bàn phím và chuột đặc biệt được thực hiện bằng API Tương tác Người dùng Nâng cao . Nó chứa các Hành động và các lớp Hành động cần thiết khi thực thi các sự kiện này. Sau đây là các sự kiện bàn phím và chuột được sử dụng phổ biến nhất do lớp Hành động cung cấp.

phương pháp Sự miêu tả
nhấn và giữ() Nhấp chuột (không nhả) tại vị trí chuột hiện tại.
contextClick () Thực hiện một cú nhấp chuột theo ngữ cảnh tại vị trí chuột hiện tại. (Nhấp chuột phải Hành động chuột)
nhấn đúp chuột() Thực hiện nhấp đúp vào vị trí chuột hiện tại.
dragAndDrop (nguồn, đích) Thực hiện nhấp và giữ tại vị trí của phần tử nguồn, di chuyển đến vị trí của phần tử đích, sau đó thả chuột. Tham số: phần tử source- để mô phỏng nút xuống at.target- phần tử để di chuyển đến và thả chuột tại.
dragAndDropBy (nguồn, x-offset, y-offset) Thực hiện nhấp và giữ tại vị trí của phần tử nguồn, di chuyển theo một độ lệch nhất định, sau đó thả chuột. Các thông số : nguồn- phần tử để mô phỏng nút xuống at.xOffset- offset di chuyển ngang.yOffset- offset di chuyển dọc.
keyDown (modifier_key) Thực hiện nhấn phím bổ trợ. Không nhả phím bổ trợ - các tương tác tiếp theo có thể cho rằng nó được nhấn. Tham số : modifier_key - bất kỳ phím bổ trợ nào (Keys.ALT, Keys.SHIFT hoặc Keys.CONTROL)
keyUp (sửa đổi _key) Thực hiện phát hành khóa. Tham số : modifier_key - bất kỳ phím bổ trợ nào (Keys.ALT, Keys.SHIFT hoặc Keys.CONTROL)
moveByOffset (x-offset, y-offset) Di chuyển chuột khỏi vị trí hiện tại của nó (hoặc 0,0) theo độ lệch đã cho. Các thông số : x-offset- offset ngang. Giá trị âm có nghĩa là di chuyển chuột sang trái. Y-offset- offset theo chiều dọc. Giá trị âm có nghĩa là di chuyển chuột xuống dưới.
moveToElement (toElement) Di chuyển chuột đến giữa phần tử. Tham số : toElement- phần tử cần chuyển đến.
giải phóng() Nhả nút chuột trái đã ấn xuống tại vị trí chuột hiện tại
sendKeys (onElement, charsequence) Gửi một loạt các tổ hợp phím vào phần tử. Tham số : onElement - phần tử sẽ nhận các tổ hợp phím, thường là một chuỗi trường văn bản - bất kỳ giá trị chuỗi nào đại diện cho chuỗi các tổ hợp phím sẽ được gửi đi

Trong ví dụ sau, chúng ta sẽ sử dụng phương thức moveToElement () để di chuột qua một trong các hàng bảng của Mercury Tours. Xem ví dụ bên dưới.

Ô được hiển thị ở trên là một phần của phần tử . Nếu không di chuột qua, màu của nó là # FFC455 (cam). Sau khi di chuột, màu của ô trở nên trong suốt. Nó trở thành cùng một màu với nền xanh của toàn bộ bảng màu cam.

Bước 1: Nhập các Hoạt độnghành động lớp.

Bước 2: Khởi tạo đối tượng Hành động mới.

Bước 3: Khởi tạo một Hành động bằng cách sử dụng đối tượng Hành động ở bước 2.

Trong trường hợp này, chúng ta sẽ sử dụng phương thức moveToElement () vì chúng ta chỉ cần di chuột qua liên kết "Home". Phương thức build () luôn là phương thức cuối cùng được sử dụng để tất cả các hành động được liệt kê sẽ được biên dịch thành một bước duy nhất.

Bước 4: Sử dụng phương thức performance () khi thực thi đối tượng Action mà chúng ta đã thiết kế ở Bước 3.

Dưới đây là toàn bộ mã WebDriver để kiểm tra màu nền của phần tử trước và sau khi di chuột qua.

gói mới dự án;nhập org.openqa.selenium. *;nhập org.openqa.selenium.firefox.FirefoxDriver;nhập org.openqa.selenium.interaction.Action;nhập org.openqa.selenium.interaction.Actions;lớp công khai PG7 {public static void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/newtours/";System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");Trình điều khiển WebDriver = mới FirefoxDriver ();driver.get (baseUrl);WebElement link_Home = driver.findElement (By.linkText ("Trang chủ"));WebElement td_Home = trình điều khiển.findElement (Bởi.xpath ("// html / body / div"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr / td"+ "/ table / tbody / tr"));Trình tạo hành động = Hành động mới (trình điều khiển);Action mouseOverHome = người xây dựng.moveToElement (link_Home).xây dựng();String bgColor = td_Home.getCssValue ("background-color");System.out.println ("Trước khi di chuột: + bgColor);mouseOverHome.perform ();bgColor = td_Home.getCssValue ("background-color");System.out.println ("Sau khi di chuột: + bgColor);trình điều khiển.close ();}}

Kết quả bên dưới nói rõ rằng màu nền trở nên trong suốt sau khi di chuột qua.

Xây dựng một chuỗi nhiều hành động

Bạn có thể xây dựng một loạt các hành động bằng cách sử dụng các lớp Hành động và Hành động . Chỉ cần nhớ đóng chuỗi bằng phương thức build (). Hãy xem xét mã mẫu bên dưới.

public static void main (String [] args) {String baseUrl = "http://www.facebook.com/";Trình điều khiển WebDriver = mới FirefoxDriver ();driver.get (baseUrl);WebElement txtUsername = driver.findElement (By.id ("email"));Trình tạo hành động = Hành động mới (trình điều khiển);Chuỗi hành độngOfActions = người xây dựng.moveToElement (txtUsername).nhấp chuột().keyDown (txtUsername, Keys.SHIFT).sendKeys (txtUsername, "xin chào").keyUp (txtUsername, Keys.SHIFT).doubleClick (txtUsername).contextClick ().xây dựng();seriesOfActions.perform ();}

Tóm lược

  • Xử lý các sự kiện bàn phím và chuột đặc biệt được thực hiện bằng API AdvancedUserInteraction.
  • Sự kiện từ khóa và chuột thường được sử dụng là doubleClick (), keyUp, dragAndDropBy, contextClick & sendKeys.