Cách sử dụng AutoIT với Selenium Webdriver: Ví dụ về Tải lên Tệp

Mục lục:

Anonim

AutoIt là gì?

AutoIt là một ngôn ngữ kịch bản phần mềm miễn phí được thiết kế để tự động hóa GUI cửa sổ và tập lệnh chung. Nó sử dụng sự kết hợp của chuyển động chuột, tổ hợp phím và thao tác điều khiển cửa sổ để tự động hóa một tác vụ mà selenium webdriver không thực hiện được.

Trong hướng dẫn AutoIt này, bạn sẽ học-

  • Tại sao sử dụng AutoIt?
  • Cách tải xuống và cài đặt AutoIT
  • Tìm phần tử thông qua Mã định danh phần tử và viết script trên trình soạn thảo AutoIT.
  • AutoIT Tải lên tệp trong Selenium Webdriver

Tại sao sử dụng AutoIt?

Selenium là một công cụ mã nguồn mở được thiết kế để tự động hóa các ứng dụng dựa trên web trên các trình duyệt khác nhau nhưng để xử lý cửa sổ GUI và cửa sổ bật lên không phải HTML trong ứng dụng. AutoIt trong Selenium là bắt buộc vì hoạt động dựa trên cửa sổ này không được xử lý bởi Selenium.

Tiếp tục trong hướng dẫn AutoIt này, chúng ta sẽ tìm hiểu cách tải lên tệp trong trình điều khiển web selen bằng AutoIt. Ở đây chúng ta cần ba công cụ để thực hiện điều này.

  • Selenium Webdriver
  • Trình chỉnh sửa AutoIT và định danh phần tử
  • Cửa sổ bạn muốn tự động hóa

Cách tải xuống và cài đặt AutoIT

Bước 1) : Truy cập liên kết này.

Bước 2) : Di chuột trên menu thả xuống 'Tự động chỉnh sửa' và 'Trình chỉnh sửa tự động'.

Bước 3) Nhấp vào tùy chọn 'AutoIT' Downloads.

Bước 4) : Tải xuống "Autoit" bằng cách nhấp vào nút 'Download Autoit'.

Bước 5) : Bây giờ tải xuống "Trình chỉnh sửa tự động" bằng cách nhấp vào nút 'Tải xuống'.

Bước 6): Bấm vào liên kết như hình bên dưới.

Sau khi tải xuống, bạn sẽ nhận được hai tệp thiết lập như hiển thị trong màn hình bên dưới, đầu tiên là thiết lập AutoIt phiên bản 3 và thứ hai là Scitautoit3 .

Bước 6) : Để cài đặt AutoIT, hãy nhấp vào từng thiết lập AutoIT.

Bước 7) : Sau khi cài đặt thành công - mở AutoIT Editor.

Đi tới 'C: \ Program Files (x86) \ AutoIt3 \ SciTE'

và nhấp vào tệp 'SciTE.exe', trình chỉnh sửa AutoIT sẽ mở ra như được hiển thị trong màn hình bên dưới.

Bước 8) : Bây giờ mở Định danh phần tử.

Đi tới 'C: \ Program Files (x86) \ AutoIt3'

Và nhấp vào tệp 'Au3Info.exe', mã định danh phần tử sẽ mở ra như hiển thị trong màn hình bên dưới.

Lưu ý: Sau khi thực hiện xong với mã định danh phần tử này, bạn cần phải đóng theo cách thủ công, nó sẽ không tự động đóng.

Tìm phần tử thông qua Mã định danh phần tử và viết script trên trình soạn thảo AutoIT.

Dưới đây, chúng ta sẽ thấy cách sử dụng trình chỉnh sửa AutoIt và cách tìm phần tử trên cửa sổ trình tải lên tệp thông qua Mã định danh phần tử AutoIT (Mã định danh phần tử là một công cụ như selenium IDE, mã định danh tìm phần tử của cửa sổ GUI hoặc cửa sổ bật lên không phải HTML và cung cấp thuộc tính phần tử như title , class , instance ) và cách viết script trên AutoIT editor bằng 3 phương thức.

Ví dụ: Chúng tôi sẽ sử dụng trang "Viết thư cho chúng tôi" của guru99 để tải lên sơ yếu lý lịch (tệp Doc).

Sau khi nhấp vào nút 'Chọn tệp' từ trang "Viết cho chúng tôi", chúng ta cần gọi tập lệnh AutoIT. Điều khiển ngay lập tức được chuyển sang chế độ tự động sau khi nhấp vào 'Chọn tệp' bằng câu lệnh dưới đây, sẽ đảm nhận phần tải lên.

Runtime.getRuntime (). Execute ("E: \\ AutoIT \\ FileUpload.exe"); 

Cuối cùng, khi chúng tôi chạy tập lệnh selen-nó sẽ điền vào biểu mẫu-> tải lên sơ yếu lý lịch-> Gửi biểu mẫu.

Bước 1) : Bây giờ mở Mã định danh phần tử- Đi tới 'C: \ Program Files (x86) \ AutoIt3' và nhấp vào tệp 'Au3Info.exe', cửa sổ định danh phần tử mở ra như hiển thị trong màn hình bên dưới.

Bước 2) : Bây giờ mở cửa sổ trình tải tệp lên bằng cách nhấp vào 'Chọn tệp' là hoạt động của cửa sổ.

Bước 3) : Kéo công cụ tìm kiếm trên phần tử hộp "Tên tệp" của cửa sổ trình tải tệp lên để tìm thông tin thuộc tính cơ bản như được hiển thị trong màn hình bên dưới với mũi tên.

Chúng ta có thể lấy giá trị của các thuộc tính như title = 'Open' , class = 'Edit'instance = '1' như hình bên dưới. Các giá trị này được sử dụng để viết ví dụ tập lệnh AutoIT như được giải thích trong bước 4 bên dưới.

Bước 4) : Bây giờ mở trình soạn thảo tập lệnh AutoIT, truy cập 'C: \ Program Files (x86) \ AutoIt3 \ SciTE' và nhấp vào 'SciTE.exe' như được hiển thị trong bước 7 từ chủ đề thứ nhất .

Bắt đầu viết kịch bản để chọn một tệp để tải lên.

Có rất nhiều phương pháp có sẵn mà chúng ta có thể sử dụng trong một tập lệnh theo yêu cầu, nhưng ngay bây giờ chúng ta sẽ tập trung vào các phương pháp dưới đây vì các phương pháp này được yêu cầu để viết tập lệnh tải lên tệp:

  1. ControlFocus ("title", "text", controlID) // Đặt tiêu điểm đầu vào cho một điều khiển nhất định trên một cửa sổ.
  2. ControlSetText ("title", "text", controlID, "Đường dẫn tệp cần tải lên") // Đặt văn bản của một điều khiển.
  3. ControlClick ("title", "text", controlID) // Gửi lệnh nhấp chuột đến một điều khiển nhất định.

Bạn có thể thấy một số phương pháp được hiển thị như trong màn hình bên dưới. Tính năng tốt của AutoIT là nó giống như Eclipse gợi ý cho bạn một số phương pháp.

Ở đây trong trình chỉnh sửa AutoIT, chúng tôi đã chọn phương pháp "tiêu điểm điều khiển" . Mã định danh phần tử đã được mở và thu nhỏ như phần tử đã được xác định ở bước trên 3. Chúng ta có thể mở nó bằng cách tối đa hóa nó.

Bây giờ, chúng ta sẽ lấy các giá trị từ mã định danh phần tử cho các phương thức 'ControlFocus' và 'ControlSetText' vì các phương thức này hoạt động trên cùng một phần tử tức là hộp văn bản 'Tên tệp' nhưng đối với phương thức 'ControlClick' cần nắm bắt các giá trị của phần tử khác nhau tức là "Mở" cái nút.

Giá trị tham số cho phương thức ControlFocus :

Phương pháp này đặt tiêu điểm vào hộp văn bản 'tên tệp' của cửa sổ trình tải lên tệp.

  • Tiêu đề tham số đầu tiên là "Mở".
  • Chúng tôi bỏ qua tham số thứ 2, văn bản không bắt buộc.
  • Tham số thứ 3 controlID là sự kết hợp của class = 'Edit' và Instance = '1' tức là,. 'Chỉnh sửa1.'
    ControlFocus ("Open", "", "Edit1") // Phương thức này đặt tiêu điểm đầu vào thành hộp văn bản 'Tên tệp'. 

Giá trị tham số cho phương thức ControlSetText :

Phương pháp này được sử dụng để xác định đường dẫn của tệp mà chúng tôi cần tải lên trong hộp văn bản 'tên tệp'. Theo một cách khác, chúng ta có thể nói rằng phương thức này được sử dụng để đặt văn bản thành phần tử đầu vào.

  • Tiêu đề tham số đầu tiên là "Mở".
  • Chúng tôi bỏ qua tham số thứ 2, văn bản không bắt buộc.
  • Tham số thứ 3 controlID là sự kết hợp của class = 'Edit' và Instance = '1' tức là "Edit1".
  • Thông số thứ 4 văn bản mới, chúng tôi chuyển đường dẫn của tệp mà chúng tôi cần tải lên.
    ControlSetText ("Open", "", "Edit1", "E: \ Resume \ resume.doc") // Phương thức này đường dẫn tệp đầu vào của một điều khiển. 

Sau khi làm theo bước trên, đừng đóng cửa sổ (trình chỉnh sửa và định danh phần tử), hãy giữ cho nó vẫn mở. Một lần nữa, bạn cần mở cửa sổ trình tải tệp lên để tìm các thuộc tính của Nút 'Mở' như được hiển thị trong bước 5 bên dưới.

Bước 5) : Bây giờ hãy kéo công cụ tìm kiếm trên phần tử nút "Mở" của cửa sổ trình tải lên tệp để tìm thông tin thuộc tính cơ bản.

Các giá trị trước đó (tức là thuộc tính của hộp văn bản 'Tên tệp') ghi đè bằng các giá trị mới của nút 'Mở'. Bạn có thể thấy thuộc tính lớp hiện đã được thay đổi thành "nút" mà trước đó đã được "chỉnh sửa" trong cửa sổ định danh phần tử AutoIT.

Chúng ta có thể lấy giá trị của các thuộc tính như title = 'Open' , class = 'Button'instance = '1' như hình bên dưới. Các giá trị này được sử dụng để viết tập lệnh Autoit như được giải thích trong phần bên dưới.

Giá trị tham số cho phương thức ControlClick :

Phương pháp này nhấp vào nút 'Mở' của cửa sổ trình tải tệp lên.

  • Tiêu đề tham số đầu tiên là "Mở".
  • Chúng tôi bỏ qua tham số thứ 2; các văn bản không cần.
  • Tham số thứ 3 controlID là sự kết hợp của class và Instance, tức là "Button1".
ControlClick ("Open", "", "Button1") // Phương thức này nhấp vào nút 'Open' của trình tải tệp lên.

Bước 6) : Bạn có thể thấy trong màn hình bên dưới rằng tập lệnh AutoIT đã hoàn tất để xử lý trình tải lên tệp. Bây giờ bạn có thể đóng mã định danh phần tử và lưu tập lệnh dưới dạng "FileUpload" tại vị trí nhất định (E: \ AutoIT).

Bây giờ bạn không thể thực thi tập lệnh này trực tiếp, bạn cần phải biên dịch tập lệnh này.

Để biên dịch tập lệnh này, bạn có hai tùy chọn " biên dịch tập lệnh x64 " và " biên dịch tập lệnh x86 ", nếu bạn có máy windows 32 bit thì bạn chọn " biên dịch tập lệnh x86" và đối với máy windows 64 bit thì chọn " biên dịch tập lệnh x64 . "

Bước 7): File exe 'FileUpload' được tạo sau khi biên dịch, bạn có thể xem trong màn hình bên dưới. Bây giờ chúng ta có thể sử dụng tệp này trong tập lệnh Selenium webdriver.

Bây giờ chúng ta sẽ sử dụng tập lệnh AutoIT này trong trình điều khiển web Selenium. Kiểm tra bên dưới để biết kết quả đầu ra.

AutoIT Tải lên tệp trong Selenium Webdriver

Trong tập lệnh Selenium, chúng tôi tìm các phần tử của biểu mẫu và điền dữ liệu vào mỗi phần tử theo yêu cầu và tải lên tệp 'resume.doc' bằng cách thực thi tệp exe AutoIT được tạo từ tập lệnh AutoIT và sau đó cho phép gửi biểu mẫu trong tập lệnh Selenium AutoIt.

  • Mở Eclipse và bắt đầu viết mã.
  • Khi selen nhấp vào nút Chọn tệp, hộp trình tải tệp lên sẽ mở ra.
  • Sau đó, chúng ta cần gọi tập lệnh AutoIT, điều khiển ngay lập tức được chuyển đến AutoIT để tải lên một tệp và sau đó điều khiển gửi trở lại selen như hình dưới đây.

Bước 1) : Phát triển tập lệnh selen trong nhật thực.

  • Lớp thời gian chạy cho phép tập lệnh giao tiếp với môi trường mà tập lệnh đang chạy.
  • getRuntime () lấy thời gian chạy hiện tại được liên kết với quá trình này.
  • Các phương thức execute () thực thi tập lệnh AutoIT (FileUpload.exe).
Runtime.getRuntime (). Execute ("E: \\ AutoIT \\ FileUpload.exe");

dòng trên sẽ gọi tập lệnh AutoIT trong selen và tải lên tệp.

Bước 2) : Thực thi tập lệnh Selenium trong Eclipse.

importjava.io.IOException;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.firefox.FirefoxDriver;public class FileUpload {public static void main (String [] args) ném IOException {Trình điều khiển WebDriver = new FirefoxDriver ();driver.get ("http://demo.guru99.com/test/autoit.html");driver.findElement (By.id ("postjob")). click ();driver.findElement (By.id ("input_3")). sendKeys ("Gaurav");driver.findElement (By.id ("id_4")). sendKeys (" Địa chỉ email này đang được bảo vệ khỏi spam bots. Bạn cần bật Javascript để xem nó.");driver.findElement (By.id ("input_4")). click ();// dòng bên dưới thực thi tập lệnh AutoIT.Runtime.getRuntime (). Execute ("E: \\ AutoIT \\ FileUpload.exe");driver.findElement (By.id ("input_6")). sendKeys ("AutoIT trong Selenium");driver.findElement (By.id ("input_2")). click ();trình điều khiển.close ();}}

Bước 3) : Xác minh đầu ra, tệp resume.doc được tải lên thành công và thông báo cảm ơn sẽ được hiển thị.

Phần kết luận:

  • Đã tải xuống và cài đặt Mã định danh phần tử và trình chỉnh sửa AutoIT.
  • Mở trang web để thực hiện hoạt động.
  • Mã định danh phần tử xác định các phần tử của cửa sổ trình tải lên tệp.
  • Tập lệnh AutoIT được chuẩn bị sẵn trong trình soạn thảo với sự trợ giúp của mã định danh Phần tử.
  • Tập lệnh Autoit được sử dụng trong tập lệnh selenium webdriver.
  • Đã thực thi tập lệnh selen.
  • Kết quả: Đã tải tệp lên thành công.

Bài viết này được đóng góp bởi Gaurav Nigam