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.