Rate this post

Trong phần này, bạn sẽ học cách thực hiện các thao tác phức tạp như Kéo và Thả trong Selenium WebDriver.

Trước khi tiếp tục phần này, trước tiên chúng ta hãy hiểu một số khái niệm liên quan đến thao tác Kéo và thả.

Các hành động trong Selenium WebDriver

Để thực hiện tương tác người dùng phức tạp như kéo và thả, chúng tôi có một lớp Hành động trong Selenium WebDriver. Sử dụng lớp Hành động, trước tiên, chúng tôi xây dựng một chuỗi các sự kiện tổng hợp và sau đó thực hiện nó bằng Hành động (một giao diện đại diện cho một tương tác người dùng duy nhất). Các phương thức khác nhau của lớp Hành động mà chúng ta sẽ sử dụng ở đây là-

  • clickAndHold (phần tử WebElement) – Nhấp vào một phần tử web ở giữa (không giải phóng).
  • moveToElement (phần tử WebElement) – Di chuyển con trỏ chuột đến giữa phần tử web mà không cần nhấp chuột.
  • release(phần tử WebElement) – Nhả nhấp chuột trái (đang ở trạng thái nhấn).
  • build () – Tạo một hành động tổng hợp

Hãy để chúng tôi xem xét một trường hợp thử nghiệm trong đó chúng tôi sẽ tự động hóa các tình huống sau:

  • Gọi trình duyệt Firefox
  • Mở URL: https://www.testandquiz.com/selenium/testing.html
  • Kéo và thả biểu tượng trên hộp văn bản

Chúng tôi sẽ tạo trường hợp thử nghiệm của mình từng bước để cung cấp cho bạn hiểu biết đầy đủ về cách xử lý kéo và thả trong WebDriver.

Bước 1 . Khởi chạy Eclipse IDE và mở bộ thử nghiệm hiện có “Demo_Test” mà chúng tôi đã tạo trong các phiên trước của hướng dẫn này.

Bước 2 . Nhấp chuột phải vào thư mục “src” và tạo một tệp lớp mới từ New> Class .

Đặt tên Lớp của bạn là “Dragdrp_Test” và nhấp vào nút “Finish”.

Xem thêm Selenium WebDriver- Xử lý trình đơn DropDown trong html

Bước 3 . Hãy bắt đầu code.

Để gọi trình duyệt Firefox, chúng ta cần tải xuống trình điều khiển Gecko và đặt thuộc tính hệ thống cho trình điều khiển Gecko. Chúng tôi đã thảo luận về điều này trong các phiên trước của hướng dẫn này.

Đây là mã mẫu để đặt thuộc tính hệ thống cho trình điều khiển Gecko:

// System Property for Gecko Driver   
ystem.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );  

Sau đó, chúng ta phải khởi tạo Trình điều khiển Gecko bằng Lớp khả năng mong muốn.

Đây là mã mẫu để khởi tạo trình điều khiển Gecko bằng cách sử dụng lớp Des mong muốn.

// Initialize Gecko Driver using Desired Capabilities Class  
DesiredCapabilities capabilities = DesiredCapabilities.firefox();  
capabilities.setCapability("marionette",true);  
WebDriver driver= new FirefoxDriver(capabilities);  

Kết hợp cả hai khối mã trên, chúng ta sẽ có được đoạn mã để khởi chạy trình duyệt Firefox.

 // System Property for Gecko Driver   
System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );  
      
 // Initialize Gecko Driver using Desired Capabilities Class  
DesiredCapabilities capabilities = DesiredCapabilities.firefox();  
capabilities.setCapability("marionette",true);  
WebDriver driver= new FirefoxDriver(capabilities); 

Sau đó, chúng tôi cần viết mã sẽ tự động hóa kịch bản thử nghiệm thứ hai của chúng tôi (điều hướng đến URL mong muốn)

Đây là mã mẫu để điều hướng đến URL mong muốn:

// Launch Website  
driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");  

Mã hoàn chỉnh cho đến bây giờ sẽ trông giống như sau:

import org.openqa.selenium.WebDriver;  
import org.openqa.selenium.firefox.FirefoxDriver;  
import org.openqa.selenium.remote.DesiredCapabilities;  
  
public class Dragdrp_Test {  
  
    public static void main(String[] args) {  
          
    // System Property for Gecko Driver   
        System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );  
              
    // Initialize Gecko Driver using Desired Capabilities Class  
            DesiredCapabilities capabilities = DesiredCapabilities.firefox();  
            capabilities.setCapability("marionette",true);  
            WebDriver driver= new FirefoxDriver(capabilities);  
          
  
      // Launch Website  
driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");   
      
    }  
  
}  

Xem thêm AngularJS Select

Bước 4 . Bây giờ chúng ta sẽ cố gắng tìm biểu tượngwebsitehcmvà hộp văn bản để thực hiện thao tác kéo và thả. Như chúng ta biết rằng việc định vị một phần tử liên quan đến việc kiểm tra các mã HTML của nó.

Thực hiện theo các bước dưới đây để tìm menu thả xuống trên trang web mẫu.

  • Mở URL: https://www.testandquiz.com/selenium/testing.html
  • Nhấp chuột phải vào biểu tượng và chọn Kiểm tra phần tử.

Nó sẽ khởi chạy một cửa sổ chứa tất cả các mã cụ thể liên quan đến việc phát triển logo.

  • Hãy ghi lại thuộc tính id của nó, tức là sourceImage

Tương tự, chúng ta sẽ kiểm tra hộp văn bản nơi chúng ta phải đặt logo.

  • Hãy ghi lại thuộc tính id của nó, tức là targetDiv

Bước 5. Để tự động hóa kịch bản thử nghiệm thứ ba và thứ tư, chúng ta cần viết mã sẽ thực hiện thao tác kéo và thả trên logo JavaTpoint.

Dưới đây là đoạn mã để thực hiện thao tác kéo và thả.

import org.openqa.selenium.WebDriver;  
import org.openqa.selenium.firefox.FirefoxDriver;  
import org.openqa.selenium.remote.DesiredCapabilities;  
  
public class Dragdrp_Test {  
  
    public static void main(String[] args) {  
          
    // System Property for Gecko Driver   
        System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );  
              
    // Initialize Gecko Driver using Desired Capabilities Class  
            DesiredCapabilities capabilities = DesiredCapabilities.firefox();  
            capabilities.setCapability("marionette",true);  
            WebDriver driver= new FirefoxDriver(capabilities);  
          
  
      // Launch Website  
driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");   
      
    }  
  
}  

Do đó, tập lệnh thử nghiệm cuối cùng của chúng tôi sẽ trông giống như sau:

import org.openqa.selenium.By;  
import org.openqa.selenium.WebDriver;  
import org.openqa.selenium.WebElement;  
import org.openqa.selenium.firefox.FirefoxDriver;  
import org.openqa.selenium.interactions.Actions;  
import org.openqa.selenium.remote.DesiredCapabilities;  
  
public class Dragdrp_Test {  
  
    public static void main(String[] args) {  
          
        // System Property for Gecko Driver   
        System.setProperty("webdriver.gecko.driver","D:\\GeckoDriver\\geckodriver.exe" );  
              
        // Initialize Gecko Driver using Desired Capabilities Class  
            DesiredCapabilities capabilities = DesiredCapabilities.firefox();  
            capabilities.setCapability("marionette",true);  
            WebDriver driver= new FirefoxDriver(capabilities);  
          
  
        // Launch Website  
            driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");   
              
        //WebElement on which drag and drop operation needs to be performed  
            WebElement from = driver.findElement(By.id("sourceImage"));  
  
        //WebElement to which the above object is dropped  
            WebElement to = driver.findElement(By.id("targetDiv"));  
               
        //Creating object of Actions class to build composite actions  
            Actions act = new Actions(driver);  
               
        //Performing the drag and drop action  
            act.dragAndDrop(from,to).build().perform();   
    }  
  
}  

Ảnh chụp màn hình sau đây hiển thị cửa sổ Eclipse cho tập lệnh thử nghiệm của chúng tôi.

Bước 6 . Nhấp chuột phải vào mã Eclipse và chọn Run As> Java Application .

Sau khi thực thi, kịch bản kiểm tra trên sẽ khởi chạy trình duyệt Firefox và tự động hóa tất cả các kịch bản kiểm tra.

Bạn có thể thấy rằng logo sẽ tự động được đưa vào hộp văn bản.

Xem thêm Bộ công cụ Selenium – Selenium Tool Suite

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now