Thử nghiệm giao diện người dùng Python
Trong bài viết này, chúng ta sẽ khám phá cách chúng ta có thể thực hiện tự động hóa GUI bằng Python. Có nhiều mô-đun có thể làm những việc này, nhưng trong bài viết này, chúng tôi sẽ sử dụng một mô-đun có tên PyAutoGUI để thực hiện GUI và tự động hóa máy tính để bàn bằng python. Show
Chúng tôi sẽ khám phá hai phần -
Cài đặtMô-đun này không được cài đặt sẵn Python. Để cài đặt, gõ lệnh dưới đây trong thiết bị đầu cuối pip install pyautogui # for windows or pip3 install pyautogui #for linux and Macos Bắt đầuChúng tôi nên biết kích thước màn hình của thiết bị trước khi thực hiện bất kỳ hoạt động tự động hóa nào. May mắn thay, PyautoGUI giúp chúng tôi dễ dàng lấy nó bằng cách sử dụng. kích thước() chức năng. Nó trả về một đối tượng kích thước với hai giá trị tương ứng là chiều rộng và chiều cao của màn hình. Thực hiện như sau
Dưới đây là việc thực hiện Python3
đầu ra Size(width=1920, height=1080) Tự động hóa chuyển động của chuộtLấy vị trí hiện tại của con trỏ chuộtĐầu tiên, chúng tôi sẽ xem con trỏ chuột của tôi hiện đang ở đâu, vì điều đó chúng tôi có thể sử dụng. chức năng vị trí (). Hàm lại trả về một đối tượng điểm có giá trị x và y nhận vị trí hiện tại của chuột
Dưới đây là việc thực hiện Python3
Size(width=1920, height=1080)2 Size(width=1920, height=1080)3
Size(width=1920, height=1080)5 đầu ra Point(x=1710, y=81) Di chuyển con trỏ và nhấp vào các điểm cụ thểBây giờ chúng tôi sẽ thử di chuyển con trỏ chuột và nhấp vào các điểm cụ thể và thực hiện mở và đóng ứng dụng. Để di chuyển con trỏ chuột, chúng ta có thể sử dụng. moveto() và chỉ định các giá trị x, y cùng với khoảng thời gian mà nó sẽ thực hiện thao tác và chúng tôi sẽ sử dụng. click() để nhấp vào vị trí hiện tại con trỏ chuột của chúng ta đang nằm. Về cơ bản, mã di chuyển con trỏ chuột đến các giá trị (519,1060) (x, y) và sau đó mô phỏng một lần nhấp bằng cách sử dụng. click() tại vị trí hiện tại của con trỏ, sau đó chúng tôi lại di chuyển đến vị trí (1717,352) bằng cách sử dụng moveTo() và mô phỏng lại lần nhấp.
Dưới đây là việc thực hiện Python3
Size(width=1920, height=1080)8 Size(width=1920, height=1080)9 Point(x=1710, y=81)0 Point(x=1710, y=81)1_______5_______2 Point(x=1710, y=81)3 Point(x=1710, y=81)4 Point(x=1710, y=81)5 Point(x=1710, y=81)6
Point(x=1710, y=81)7 Point(x=1710, y=81)8 Point(x=1710, y=81)9
Size(width=1920, height=1080)9 # importing modules 2Point(x=1710, y=81)1 # importing modules 4Point(x=1710, y=81)3 Point(x=1710, y=81)4 Point(x=1710, y=81)5 Point(x=1710, y=81)6
Point(x=1710, y=81)7 Point(x=1710, y=81)8 Point(x=1710, y=81)9 đầu ra Bây giờ chúng ta sẽ khám phá thêm hai phương pháp cụ thể là. moveRel() giúp chúng ta di chuyển so với vị trí hiện tại và cuối cùng chúng ta sẽ thấy cách chúng ta có thể mô phỏng nhấp chuột phải bằng pyAutoGUI. Chúng tôi bắt đầu với việc nhập gói và kích thích con trỏ di chuyển 498 px trở xuống 998 px từ vị trí hiện tại. Sau đó, chúng tôi sử dụng phương thức click() để mô phỏng nhấp chuột trái. Sau đó, chúng tôi di chuyển đến một vị trí cụ thể bằng cách sử dụng. phương thức moveTo(). Bây giờ, chúng tôi lại nhấp vào vị trí hiện tại của con trỏ nhưng lần này chúng tôi hướng dẫn mô phỏng nhấp chuột phải thay vì nhấp chuột trái bằng cách chuyển tham số button=”right” (mặc định là button=”left”). Sau đó, chúng tôi đạt được để di chuyển đến một vị trí được chỉ định và nhấp chuột trái vào đó
Dưới đây là việc thực hiện Python3
Point(x=1710, y=81)3 Point(x=1710, y=81)4 Point(x=1710, y=81)5 Point(x=1710, y=81)6
Point(x=1710, y=81)9
Size(width=1920, height=1080)9 pyautogui 9Point(x=1710, y=81)1 # returns a size object with 1Point(x=1710, y=81)3 Point(x=1710, y=81)4 Point(x=1710, y=81)5 Point(x=1710, y=81)6
Point(x=1710, y=81)4 # width and height of the screen 0Point(x=1710, y=81)6
Size(width=1920, height=1080)9 # width and height of the screen 4Point(x=1710, y=81)1 # width and height of the screen 6Point(x=1710, y=81)3 Point(x=1710, y=81)4 Point(x=1710, y=81)5 Point(x=1710, y=81)6
Point(x=1710, y=81)9 đầu ra Kéo con trỏ đến một vị trí màn hình cụ thểBây giờ chúng ta sẽ xem cách kéo các cửa sổ bằng pyAutoGUI. Chúng ta có thể sử dụng. dragto() và. dragrel() chính xác là cách. moveto() và. movrel() hoạt động ngoại trừ trong trường hợp này, họ giữ nhấp chuột trái trong khi di chuyển con trỏ. Trong chương trình này, chúng tôi chỉ cần nhập các mô-đun, sau đó chúng tôi chuyển đến một chỉ định bằng cách sử dụng. hàm moveTo(). Sau đó, chúng tôi nhấp chuột trái vào vị trí hiện tại của con trỏ. Bây giờ chúng ta lại di chuyển con trỏ đến một vị trí xác định. Sau đó, chúng tôi sử dụng. dragTo() để kéo (nhấp chuột trái và giữ) đến một vị trí cụ thể. Cuối cùng, chúng ta sử dụng hàm dragRel() để kéo con trỏ so với vị trí hiện tại của nó sang phải 50px và xuống dưới 50px
Dưới đây là việc thực hiện Python3
Size(width=1920, height=1080)9 Point(x=1710, y=81)0 Point(x=1710, y=81)1_______5_______2 Point(x=1710, y=81)3 Point(x=1710, y=81)4 Point(x=1710, y=81)5 Point(x=1710, y=81)6
Point(x=1710, y=81)9
Size(width=1920, height=1080)9 (pyautogui.size()) 8Point(x=1710, y=81)1 # importing modules 4Point(x=1710, y=81)3 Point(x=1710, y=81)4 Point(x=1710, y=81)5 Point(x=1710, y=81)6
Size(width=1920, height=1080)05 Size(width=1920, height=1080)06 Size(width=1920, height=1080)07 Size(width=1920, height=1080)08 Point(x=1710, y=81)1 Size(width=1920, height=1080)08 Point(x=1710, y=81)3 Point(x=1710, y=81)4 Point(x=1710, y=81)5 Point(x=1710, y=81)6
Size(width=1920, height=1080)15 Size(width=1920, height=1080)16 Size(width=1920, height=1080)17_______1_______18 Point(x=1710, y=81)1 Size(width=1920, height=1080)18 Point(x=1710, y=81)3 Point(x=1710, y=81)4 Point(x=1710, y=81)5_______5_______6 đầu ra Ghi chú. Thông số thời lượng trong. chuyển tới(),. di chuyểnRel(),. dragTo() và. Các hàm dragRel() là tùy chọn, nhưng nó được cung cấp để tạo hiệu ứng hoạt hình, nếu không có thuộc tính, các hàm sẽ thực thi ngay lập tức và sẽ rất khó hiểu. Ngoài ra, chúng tôi tùy chọn chuyển các giá trị x và y trong. click() có thể được sử dụng để nhấp vào một vị trí khác với vị trí hiện tại của con trỏ Bàn phím tự độngTự động gõ bằng bàn phímĐầu tiên, chúng ta sẽ tìm hiểu cách mô phỏng việc nhập nội dung nào đó bằng pyAutoGUI. Ở đây trong ví dụ này, chúng tôi sẽ nhập nội dung nào đó vào tệp notepad bằng cách sử dụng. chức năng đánh máy (). Trong mã này, trước tiên chúng tôi nhập mô-đun thời gian và pyAutoGUI, sau đó sử dụng thời gian. sleep() để tạm dừng thực thi chương trình trong một số giây được chỉ định. Sau đó, chúng tôi sử dụng pyautogui. typewrite() chức năng mô phỏng việc gõ các phím chữ và số. Cụm từ bên trong dấu ngoặc kép sẽ được gõ. Thực hiện như sau
Dưới đây là việc thực hiện Python3Size(width=1920, height=1080)25
Size(width=1920, height=1080)27
Size(width=1920, height=1080)30 Size(width=1920, height=1080)31 Size(width=1920, height=1080)32_______1_______33 Point(x=1710, y=81)6
Size(width=1920, height=1080)35 Size(width=1920, height=1080)36 Size(width=1920, height=1080)37_______1_______38 Point(x=1710, y=81)6 đầu ra Nhấn các phím cụ thể và mô phỏng phím nóngTiếp theo, chúng ta sẽ khám phá hai chức năng, chức năng đầu tiên là. press() và cái thứ hai là. phím nóng (), phím đầu tiên giúp bạn nhấn một phím thường được sử dụng để nhấn các phím không phải chữ và số và. các hàm hotkeys() giúp chúng ta nhấn các phím nóng như ctrl+shift+esc, v.v. Ở đây, chúng tôi cũng bắt đầu mã bằng cách nhập hai mô-đun, thời gian và pyAutoGUI. Sau đó, chúng tôi tạm dừng thực hiện chương trình trong 5 giây bằng chức năng ngủ. chúng tôi nhập chuỗi bằng chức năng đánh máy. Sau đó, chúng tôi sử dụng. press() để mô phỏng thao tác nhấn phím và cuối cùng là. hotkey() chức năng để mô phỏng việc nhấn các phím nóng. Trong ví dụ của chúng tôi, chúng tôi đã sử dụng phím nóng ctrl+a để chọn tất cả văn bản. Việc thực hiện như sau
Dưới đây là việc thực hiện Python3Size(width=1920, height=1080)25
Size(width=1920, height=1080)27
Size(width=1920, height=1080)30 Size(width=1920, height=1080)31 Size(width=1920, height=1080)32_______1_______33 Point(x=1710, y=81)6
Size(width=1920, height=1080)35 Size(width=1920, height=1080)36 Size(width=1920, height=1080)37_______1_______38 Point(x=1710, y=81)6
Size(width=1920, height=1080)55 Size(width=1920, height=1080)56 Size(width=1920, height=1080)57 Point(x=1710, y=81)6
Size(width=1920, height=1080)59 Size(width=1920, height=1080)60 Size(width=1920, height=1080)61 Point(x=1710, y=81)1 Size(width=1920, height=1080)63 Point(x=1710, y=81)6 đầu ra Hiển thị hộp tin nhắnBây giờ chúng tôi sẽ cố gắng khám phá một số hộp thông báo kiểu JavaScript đa nền tảng do pyAutoGUI cung cấp cho chúng tôi. Nó sử dụng mô-đun Tkinter và PyMsgBox để hiển thị các hộp này. Mã bắt đầu bằng việc nhập các mô-đun, sau đó chúng tôi sử dụng các hộp thông báo khác nhau để hiển thị các thông báo khác nhau. Các. Hàm alert() hiển thị một cảnh báo trong đó chúng ta đặt tiêu đề và văn bản thành trống bằng nút “OK”. Sau đó. Hàm confirm() hiển thị hộp thoại xác nhận, trong đó chúng ta đặt lại tiêu đề và văn bản để trống và giữ hai nút “OK” & “CANCEL”. Sau đó. Hàm prompt() hiển thị hộp nhắc xác nhận trong đó chúng ta lại đặt tiêu đề, văn bản và mặc định (những gì sẽ được viết theo mặc định trong hộp nhắc trước khi người dùng bắt đầu nhập) thành trống. cuối cùng. password() hiển thị hộp thoại mật khẩu trong đó chúng ta lại đặt tiêu đề và văn bản thành trống và đặt mặt nạ (Ký tự được thay thế thay vì các chữ cái gốc trong mật khẩu) thành “*”. Việc thực hiện như sau
Dưới đây là việc thực hiện Python3
Size(width=1920, height=1080)67 Size(width=1920, height=1080)68 Size(width=1920, height=1080)69 Size(width=1920, height=1080)70 Point(x=1710, y=81)4 Size(width=1920, height=1080)72 Size(width=1920, height=1080)73 Size(width=1920, height=1080)74 Size(width=1920, height=1080)75
Size(width=1920, height=1080)76 Size(width=1920, height=1080)77 Size(width=1920, height=1080)78 Point(x=1710, y=81)4 Size(width=1920, height=1080)72 Size(width=1920, height=1080)73 Size(width=1920, height=1080)82 Size(width=1920, height=1080)83 Size(width=1920, height=1080)84 Size(width=1920, height=1080)85
Size(width=1920, height=1080)86 Size(width=1920, height=1080)87 Size(width=1920, height=1080)88 Point(x=1710, y=81)4 Size(width=1920, height=1080)72 Size(width=1920, height=1080)73 Size(width=1920, height=1080)92 Size(width=1920, height=1080)93
Size(width=1920, height=1080)94 Size(width=1920, height=1080)95 Size(width=1920, height=1080)96 Point(x=1710, y=81)4 Size(width=1920, height=1080)72 Size(width=1920, height=1080)73 Point(x=1710, y=81)00 Point(x=1710, y=81)01 Point(x=1710, y=81)02 Size(width=1920, height=1080)93 đầu ra Chụp ảnh màn hìnhCuối cùng, chúng ta sẽ xem cách chụp ảnh màn hình bằng pyAutoGUI bằng cách sử dụng. chức năng ảnh chụp màn hình (). Chúng tôi sẽ bắt đầu bằng cách nhập mô-đun pyAutoGUI. Sau đó, chúng tôi sử dụng. screenshot() chức năng chụp ảnh màn hình của cửa sổ hiện tại và lưu trữ dưới dạng “123. png” trong cùng một thư mục, để lưu trữ trong một thư mục khác, chúng tôi cần cung cấp đường dẫn tương đối hoặc tuyệt đối của nó. Việc thực hiện sẽ như sau
|