NỘI DUNG BÀI HỌC
Có 2 cách upload file An thấy nó dễ dàng mà hiệu quả cho nhiều case upload là: dùng sendKeys của Selenium và dùng cách copy paste link file từ clipboard vào Local form hiện lên từ Computer với Robot class.
Ok mình sẽ đi từng cách nhé !!
1. Upload file với sendKeys trong Selenium
Điều kiện tiên quyết để dùng được cách này là:
- Element phải là thẻ "input" và có type là "file". Nhưng cần kiểm tra là nó cho phép kéo thả file vào (thử thủ công trước)
- File PATH là đường dẫn tuyệt đối, phải tính từ thư mục ổ đĩa máy tính cho đến file name chấm đuôi file chính xác
- Dùng dấu \\ để phân cách folder nếu link trực tiếp trong ổ đĩa máy tính Windows
- Suggest: nên mang file vào cùng project để file PATH nó ổn định cho nhiều máy
Cách này các bạn dùng hàm sendKeys
với giá trị là một link file tuyệt đối từ local máy là xong
Chú ý cái System.getProperty("user.dir")
nghĩa là nó lấy từ mục gốc của máy tính (C:/, D:/, ...) tới mục của source code mình đang mở và sau đó nối vào cái thư mục nguồn src trở về sau.
File.separator
để tự động thay thế dấu phân cách đường dẫn trên hệ điều hành.2. Upload file với Robot class của Java
Ý tưởng:
- Click button mở form chọn file từ máy tính
- Copy link file đó vào clipboard
- Dán giá trị từ clipboard đó (Ctrl + V)
- Nhấn phím Enter
Ok vậy là xong rồi. Thử đoạn code này nào.
Từ 2 hàm trên thì các bạn viết 2 hàm chung cho nó rồi truyền vào Element và File Path là đẹp hơn đó.
----------------------------------------------------------------------
Code theo Page Object Model + WebUI keyword
Thực hành trên hệ thống CMS: https://demo.activeitzone.com/ecommerce/login
Class: UploadFileCMSPage (page)
Class: UploadFileCMS (test case)
Ok rồi. Có gì chưa hiểu hay chưa làm được thì liên hệ An trong nhóm nhé !!