Cách Upload và Download tệp bằng Selenium Webdriver

Upload file

Đối với phần này, chúng tôi sẽ sử dụng http://demo.guru99.com/test/upload/ làm ứng dụng thử nghiệm của chúng tôi. Trang web này dễ dàng cho phép bất kỳ khách truy cập nào Upload file mà không yêu cầu họ đăng ký.

Upload file trong WebDriver được thực hiện đơn giản bằng cách sử dụng phương thức sendKeys () trên trường đầu vào chọn tệp để nhập đường dẫn đến tệp sẽ được tải lên.

Xử lý cửa sổ bật lên Upload file trong Selenium Webdriver

xử lý cửa sổ bật lên Upload file trong selenium webdriver

Giả sử chúng tôi muốn Upload file “C: \ newhtml.html”. Mã WebDriver của chúng tôi sẽ giống như mã được hiển thị bên dưới.

package newproject;

import org.openqa.selenium.*;

import org.openqa.selenium.firefox.FirefoxDriver;

public class PG9 {

    public static void main(String[] args) {

        System.setProperty(“webdriver.gecko.driver”,”C:\\geckodriver.exe”);

        String baseUrl = “http://demo.guru99.com/test/upload/”;

        WebDriver driver = new FirefoxDriver();

        driver.get(baseUrl);

        WebElement uploadElement = driver.findElement(By.id(“uploadfile_0”));

        // enter the file path onto the file-selection input field

        uploadElement.sendKeys(“C:\\newhtml.html”);

        // check the “I accept the terms of service” check box

        driver.findElement(By.id(“terms”)).click();

        driver.findElement(By.name(“send”)).click();

        }

}

Sau khi chạy tập lệnh này, bạn sẽ có thể tải tệp lên thành công và bạn sẽ nhận được một thông báo tương tự như thế này.

Hãy nhớ làm theo hai điều khi tải tệp lên trong WebDriver

  1. Không cần phải mô phỏng việc nhấp vào nút “Duyệt qua”. WebDriver tự động nhập đường dẫn tệp vào hộp văn bản chọn tệp của phần tử <input type = “file”>
  2. Khi đặt đường dẫn tệp trong IDE Java của bạn, hãy sử dụng ký tự thoát thích hợp cho dấu gạch chéo ngược.

Tải tập tin

WebDriver không có khả năng truy cập hộp thoại Download do trình duyệt hiển thị khi bạn nhấp vào liên kết hoặc nút Download. Tuy nhiên, chúng ta có thể bỏ qua các hộp thoại này bằng cách sử dụng một chương trình riêng biệt có tên “wget”.

Wget là gì?

Wget là một chương trình dòng lệnh nhỏ và dễ sử dụng được sử dụng để tự động Download . Về cơ bản, chúng tôi sẽ truy cập Wget từ tập lệnh WebDriver của mình để thực hiện quá trình Download.

Thiết lập Wget

Bước 1: Trong Ổ C của bạn, tạo một thư mục mới và đặt tên là “Wget”.

Download wget.exe từ đây và Đặt nó vào thư mục Wget bạn đã tạo từ bước trên.

Bước 2: Mở Run bằng cách nhấn phím windows + “R”; gõ vào “cmd và nhấp vào ok

Gõ lệnh “cd /” để chuyển đến thư mục gốc

Bước 3: Nhập lệnh để kiểm tra xem thiết lập đã cho có hoạt động hay không

cmd /c C:\\Wget\\wget.exe -P C: –no-check-certificate http://demo.guru99.com/selenium/msgr11us.exe

Có vẻ như có sự cố khi ghi vào ổ C.

Bước 4: Bạn cần gỡ lỗi wget trong dòng lệnh trước khi thực thi mã bằng Selenium Webdriver. Các lỗi này sẽ tồn tại trong Eclipse và các thông báo lỗi sẽ không nhiều thông tin. Tốt nhất là trước tiên hãy bắt đầu hoạt động bằng dòng lệnh. Nếu nó hoạt động trong dòng lệnh, nó chắc chắn sẽ hoạt động trong Eclipse.

Trong ví dụ của chúng tôi, như hiển thị ở bước 3, có vấn đề khi ghi vào ổ C. Hãy thay đổi vị trí Download ổ D và kiểm tra kết quả.

cmd / c C: \\ Wget \\ wget.exe -PD: –no-check-certificate http://demo.guru99.com/selenium/msgr11us.exe

Messenger đã được Download thành công.

Trước khi tiếp tục, đừng quên xóa tệp đã Download

Sử dụng WebDriver và Wget

Trong ví dụ sau, chúng tôi sẽ sử dụng WebDriver và wget để Download một phần mềm trò chuyện phổ biến có tên là Yahoo Messenger. URL cơ sở của chúng tôi sẽ là http://demo.guru99.com/test/yahoo.html .

Bước 1

Nhập gói “java.io.IOException” vì chúng ta sẽ phải bắt IOException sau trong Bước 4.

Bước 2

Sử dụng getAttribute () để lấy giá trị “href” của liên kết Download và lưu nó dưới dạng biến Chuỗi. Trong trường hợp này, chúng tôi đặt tên biến là “sourceLocation”.

Bước 3

Thiết lập cú pháp cho wget bằng lệnh sau.

Bước 4

Bắt đầu quá trình Download bằng cách gọi wget từ mã WebDriver của chúng tôi.

Tóm lại, mã WebDriver của bạn có thể trông giống như hình bên dưới.

package newproject;

import java.io.IOException;

import org.openqa.selenium.*;

import org.openqa.selenium.firefox.FirefoxDriver;

public class PG8 {

    public static void main(String[] args) {

        System.setProperty(“webdriver.gecko.driver”,”C:\\geckodriver.exe”);

                String baseUrl = “http://demo.guru99.com/test/yahoo.html”;

        WebDriver driver = new FirefoxDriver();

        driver.get(baseUrl);

        WebElement downloadButton = driver.findElement(By

        .id(“messenger-download”));

        String sourceLocation = downloadButton.getAttribute(“href”);

        String wget_command = “cmd /c C:\\Wget\\wget.exe -P D: –no-check-certificate ” + sourceLocation;

        try {

        Process exec = Runtime.getRuntime().exec(wget_command);

        int exitVal = exec.waitFor();

        System.out.println(“Exit value: ” + exitVal);

        } catch (InterruptedException | IOException ex) {

        System.out.println(ex.toString());

        }

        driver.close();

        }

}

Sau khi thực hiện mã này, hãy kiểm tra ổ đĩa D của bạn và xác minh rằng trình cài đặt Yahoo Messenger đã được Download thành công ở đó.

Tóm lược

  • Upload file trong WebDriver được thực hiện đơn giản bằng cách sử dụng phương thức sendKeys () trên trường đầu vào chọn tệp để nhập đường dẫn đến tệp sẽ được tải lên.
  • WebDriver không thể tự động tải tệp xuống.
  • Cách dễ nhất để Download tệp bằng WebDriver là sử dụng Wget.
Back to top button