Cách Tải lên & Tải xuống tệp bằng Selenium Webdriver

Mục lục:

Anonim

Trong hướng dẫn này, chúng ta sẽ tìm hiểu Cách đối phó với tải lên và tải xuống tệp.

Tải lên tệp

Đố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 tải lên tệp mà không yêu cầu họ đăng ký.

Tải lên tệp 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 tải lên tệp trong Selenium Webdriver
xử lý cửa sổ bật lên tải lên tệp trong trình duyệt web selenium

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

gói mới dự án;nhập org.openqa.selenium. *;nhập org.openqa.selenium.firefox.FirefoxDriver;lớp công khai PG9 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/upload/";Trình điều khiển WebDriver = mới FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// nhập đường dẫn tệp vào trường đầu vào chọn tệpuploadElement.sendKeys ("C: \\ newhtml.html");// chọn hộp kiểm "Tôi chấp nhận các điều khoản dịch vụ"driver.findElement (By.id ("điều khoản")). click ();// nhấp vào nút "UploadFile"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ử
  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 Tải xuống do trình duyệt hiển thị khi bạn nhấp vào liên kết hoặc nút tải xuống. 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 tải xuống . 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 tải xuống.

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".

Tải xuống 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 -PC: --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. Những 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í tải xuống ổ 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 tải xuống thành công.

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

Sử dụng WebDriver và Wget

Trong ví dụ sau, chúng tôi sẽ sử dụng WebDriver và wget để tải xuống 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 tải xuống 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 tải xuống 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ư được hiển thị bên dưới.

gói mới dự án;nhập java.io.IOException;nhập org.openqa.selenium. *;nhập org.openqa.selenium.firefox.FirefoxDriver;lớp công khai PG8 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/yahoo.html";Trình điều khiển WebDriver = mới FirefoxDriver ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (Bởi.id ("messenger-download"));String sourceLocation = downloadButton.getAttribute ("href");String wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;thử {Quá trình thực thi = Runtime.getRuntime (). Execute (wget_command);int exitVal = executive.waitFor ();System.out.println ("Giá trị thoát: + exitVal);} catch (InterruptException | IOException ex) {System.out.println (ex.toString ());}trình điều khiển.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 tải xuống thành công ở đó.

Tóm lược

  • Tải lên tệp 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 để tải xuống tệp bằng WebDriver là sử dụng Wget.