Ứng dụng Windows sử dụng Python

Thực hiện các nhiệm vụ lặp đi lặp lại rất nhàm chán và bận rộn. Nhưng điều gì sẽ xảy ra nếu bạn có thể tự động hóa những thứ đó và để một tập lệnh thực hiện nhiệm vụ nhàm chán đó. Thật tuyệt vời phải không? . Bởi vì nếu bạn có thể tự động hóa những công việc lặp đi lặp lại như vậy, bạn có thể tiết kiệm thời gian quý báu của mình cho những việc quan trọng khác. Tự động hóa cũng đang tăng lên từng ngày vì có nhiều thứ lặp đi lặp lại trong tự nhiên và nếu chúng được tự động hóa, chúng sẽ tiết kiệm công sức của bạn và trong nhiều trường hợp, nhân lực rất lớn tham gia vào các nhiệm vụ đó

Hình ảnh 1

Tự động hóa cung cấp trợ giúp tuyệt vời để giảm khối lượng công việc và cũng có các tập lệnh hoạt động 24 × 7 mà không cần bất kỳ sự can thiệp nào của con người. Vì vậy, bất cứ khi nào một máy đi vào pla

blogathon, deep learning, Graph neural network, pythonĐã xuất bản
2021/09/30 tại 6. 45pm2406

Tốt

Cần cải thiện

0Chỉnh sửa nhanh

y, công việc tự động trở nên chính xác, nhanh chóng và không có lỗi

Ứng dụng của tự động hóa

Trước khi tiếp tục, hãy xem xét một số trường hợp sử dụng tự động hóa rất phổ biến

  1. Hỗ trợ bộ phận trợ giúp tự động
    Nhiều công ty hoặc ngân hàng hỗ trợ bộ phận trợ giúp nơi một người đặt câu hỏi qua email, SMS, Slack, v.v. và họ ngay lập tức nhận được phản hồi.
  2. Tự động điền biểu mẫu.
    Nhiệm vụ nhàm chán này là điền vào biểu mẫu trực tuyến và đặt lại mật khẩu đã quên, v.v. có thể dễ dàng xử lý bằng các tập lệnh tự động.
  3. Tự động kích hoạt thư hàng ngày.
    Điều này hữu ích khi bạn phải gửi tệp đính kèm qua thư hàng ngày. Một tập lệnh tự động được lên lịch hàng ngày sẽ dễ dàng quản lý việc này.
  4. Cập nhật thời tiết nhanh
    Bạn cũng có thể kiểm tra thời tiết một cách dễ dàng và nhanh chóng nhưng nếu nó tự động đến với bạn thì sẽ thuận tiện hơn. Vì vậy, đây cũng là một ví dụ về tự động hóa khi bạn tự động nhận thông báo cập nhật thời tiết hàng ngày.

Đây chỉ là một vài ví dụ về việc tự động hóa những thứ nhàm chán mà cuối cùng sẽ khiến cuộc sống của bạn thoải mái hơn một chút. Nhưng trong bài viết này, chúng ta sẽ tự động hóa các ứng dụng windows

Vì vậy, để tự động hóa ứng dụng windows, chúng tôi sẽ sử dụng Python. Python cung cấp khả năng đọc tuyệt vời và cú pháp dễ học. Trong Python, chúng ta sẽ sử dụng mô-đun Pywinauto với mục đích duy nhất là tự động hóa các ứng dụng windows. Vì vậy, hãy bắt đầu

Bạn có thể tham khảo tài liệu về Pywinauto tại đây

Lệnh cài đặt Pywinauto. cài đặt pip pywinauto

Chúng ta sẽ xem xét một số ví dụ trong bài viết này. Đầu tiên, chúng ta sẽ bắt đầu với tính năng tự động hóa Notepad khá cơ bản. Sau đó, chúng tôi sẽ tự động hóa ứng dụng excel. Trong excel, chúng tôi sẽ cố gắng đọc dữ liệu từ các ô và ghi dữ liệu vào các ô. Và chúng ta cũng sẽ xem xét thêm một số ví dụ phía trước. Điều này chúng ta sẽ làm với Python và Pywinauto

Khi chúng tôi đã cài đặt pywinauto, điều đầu tiên cần làm là xác định phần phụ trợ khả năng truy cập nào của pywinauto sẽ được sử dụng cho ứng dụng của chúng tôi. Về cơ bản có hai chương trình phụ trợ được hỗ trợ trong windows

1. API Win32

Nó là chương trình phụ trợ mặc định được sử dụng bởi pywinauto

Nếu bạn muốn sử dụng nó, chỉ cần chỉ định là backend = “win32” trong phương thức Application[] của pywinauto

2. Tự động hóa giao diện người dùng MS

Nó là một chương trình phụ trợ được nhiều người ưa thích và khi bạn muốn truy cập các phần tử từ cửa sổ, nó khá dễ dàng với chương trình phụ trợ này

Để sử dụng chương trình phụ trợ này, chỉ cần chỉ định chương trình phụ trợ là phụ trợ = “uia” trong phương thức Application[] của pywinauto

Tự động hóa Notepad bằng Pywinauto

Bằng cách xem ví dụ này, chúng ta sẽ học những kiến ​​thức cơ bản về tự động hóa bằng Pywinuato. Chúng ta sẽ xem xét một số khái niệm như cách khởi động ứng dụng, cách tối đa hóa ứng dụng, cách viết văn bản trong notepad

Bắt đầu với việc nhập các tệp cần thiết

from pywinauto import application

Bây giờ, hãy bắt đầu ứng dụng Notepad của chúng tôi bằng cách sử dụng phương thức bắt đầu của ứng dụng mà chúng tôi đã nhập ở trên

app = application.Application[]
app.start["Notepad.exe"]

Chúng tôi cần trích xuất cửa sổ trên cùng của ứng dụng notepad, vì vậy có nhiều cách để thực hiện

Chúng ta có thể có được một cửa sổ trên cùng như

ứng dụng. cửa sổ[][0]. Nó trả về danh sách tất cả các cửa sổ và trong danh sách này, cửa sổ đầu tiên là thứ chúng ta cần, vì vậy chỉ cần chụp nó từ đây

Đây là toàn bộ cửa sổ chúng tôi nhận được bằng cách in ứng dụng. windows[] và trên chỉ số 0 là cửa sổ chúng ta cần

ứng dụng. cửa sổ trên cùng[]. Nó sẽ chỉ trả lại cho bạn cửa sổ trên cùng của tất cả các ứng dụng đã mở và đó là cửa sổ notepad mà chúng tôi cần

ứng dụng ['Chưa có tiêu đề - Notepad']. Đây là một cách khác để có được cửa sổ chúng ta cần. “Untitled – Notepad” là tên của cửa sổ mở ra khi thực thi ứng dụng. phương thức bắt đầu[]

Với điều này, notepad của chúng tôi sẽ mở ra. Bây giờ hãy giữ cho nó đơn giản và chúng tôi sẽ cố gắng viết một cái gì đó trong vùng văn bản. Vì vậy, chỉ cần sử dụng phương thức type_keys[]. Bất cứ thứ gì bạn muốn nhập vào vùng văn bản, chỉ cần chuyển nó dưới dạng một chuỗi bên trong phương thức type_keys[]

text_message = "Hi Aliens! Text coming from pywinauto!"
dlg.type_keys[text_message, with_spaces=True]

đầu ra

Hầu hết thời gian, cửa sổ notepad mở ra dưới dạng một màn hình nhỏ, vì vậy nếu chúng ta muốn phóng to nó, chúng ta chỉ cần sử dụng phương thức is_maximized[]. Nó sẽ trả về false nếu cửa sổ không ở trạng thái phóng to hoàn toàn

if dlg.is_maximized[] == False:
    dlg.maximize[]

Tự động hóa ứng dụng Excel

Bây giờ, những điều cơ bản của chúng tôi đã sẵn sàng. Vì vậy, hãy chuyển sang bước tiếp theo và thực hiện tự động hóa excel. Điều này sẽ rất thú vị vì chúng ta sẽ xem xét cách bạn có thể đọc dữ liệu từ excel, cách bạn có thể gửi dữ liệu trong một trang tính excel. Hãy bắt đầu với việc mở tệp excel của chúng tôi

program_path = r"C:Program Files [x86]Microsoft OfficerootOffice16EXCEL.EXE"
file_path    = r"C:UsersDesktopsample.xlsx"

Đầu tiên, bắt đầu ứng dụng của chúng tôi. Trong trường hợp excel thì khác hoàn toàn vì chúng ta cần mở tệp xlsx của mình thông qua excel. exe, vì vậy chúng ta có thể làm như thế này

app = application.Application[backend="uia"].start[r'{} "{}"'.format[program_path, file_path]]

Điều này bắt đầu ứng dụng của chúng tôi. Bây giờ, chúng ta cần chọn cửa sổ mẫu. xlsx bởi vì chúng tôi phải làm việc với nó, vì vậy như đã thảo luận ở trên, chúng tôi sẽ làm như vậy

đầu ra

[, , , , ]

Vì vậy, chúng tôi có thể chọn 0 cửa sổ chỉ mục hoặc chúng tôi có thể lấy cửa sổ của mình bằng cách đặt tên trực tiếp

dlg = app['sample.xlsx - Excel']

Bây giờ, giả sử chúng ta muốn biết tất cả các thuộc tính hoặc thành phần điều khiển nào có trong cửa sổ của ứng dụng đã mở. Sau đó, chúng ta có thể sử dụng phương thức print_control_identifiers[]. Tất cả các tên “best_match” có thể được hiển thị dưới dạng danh sách Python cho mọi điều khiển ở dạng cây

Pywinauto hỗ trợ các thành phần điều khiển GUI phổ biến nhất, bao gồm

  • Cái nút
  • hộp kiểm
  • Nút radio
  • hộp nhóm
  • ComboBox
  • Chỉnh sửa
  • tiêu đề
  • Hộp danh sách
  • Chế độ xem danh sách
  • Thực đơn
  • tĩnh
  • Thanh trạng thái
  • Kiểm soát tab
  • Thanh công cụ
  • Mẹo công cụ
  • CâyXem
  • Lên xuống

________số 8

đầu ra

Control Identifiers:
Dialog - 'sample.xlsx - Excel'    [L-8, T-8, R1374, B647]
['Dialog', 'sample.xlsx - Excel', 'sample.xlsx - ExcelDialog']
child_window[title="sample.xlsx - Excel", control_type="Window"]
   |
   | Pane - 'DropShadowTop'    [L0, T161, R1366, B167]
   | ['DropShadowTop', 'DropShadowTopPane', 'Pane', 'Pane0', 'Pane1']
   | child_window[title="DropShadowTop", control_type="Pane"]
   |
   | Pane - ''    [L0, T617, R1366, B639]
   | ['Pane2']
   |    |
   |    | Toolbar - ''    [L0, T617, R1366, B639]
   |    | ['Toolbar', 'Toolbar0', 'Toolbar1']
   |    |    |
   |    |    | Pane - 'Status Bar'    [L0, T617, R1366, B639]
   |    |    | ['Status BarPane', 'Pane3', 'Status Bar', 'Status Bar0', 'Status Bar1']
   |    |    | child_window[title="Status Bar", control_type="Pane"]
   |    |    |    |
   |    |    |    | Pane - ''    [L0, T617, R1366, B639]
   |    |    |    | ['Pane4']
   |    |    |    |    |
   |    |    |    |    | Pane - ''    [L0, T617, R1366, B639]
   |    |    |    |    | ['Pane5']
   |    |    |    |    |    |
   |    |    |    |    |    | StatusBar - 'Status Bar'    [L0, T617, R1366, B639]
   |    |    |    |    |    | ['StatusBar', 'Status Bar2', 'Status BarStatusBar']
   |    |    |    |    |    | child_window[title="Status Bar", control_type="StatusBar"]
   |    |    |    |    |    |    |
   |    |    |    |    |    |    | Button - 'Cell Mode Ready'    [L0, T618, R47, B639]
   |    |    |    |    |    |    | ['Button', 'Cell Mode ReadyButton', 'Cell Mode Ready', 'Button0', 'Button1']
   |    |    |    |    |    |    | child_window[title="Cell Mode Ready", control_type="Button"]
   |    |    |    |    |    |    |
   |    |    |    |    |    |    | TabItem - 'Normal'    [L1066, T618, R1106, B639]
   |    |    |    |    |    |    | ['TabItem', 'NormalTabItem', 'Normal', 'TabItem0', 'TabItem1']
   |    |    |    |    |    |    | child_window[title="Normal", control_type="TabItem"]
   |    |    |    |    |    |    |
   |    |    |    |    |    |    | TabItem - 'Page Layout'    [L1106, T618, R1146, B639]
   |    |    |    |    |    |    | ['TabItem2', 'Page Layout', 'Page LayoutTabItem', 'Page Layout0', 'Page Layout1', 'Page LayoutTabItem0', 'Page LayoutTabItem1']
   |    |    |    |    |    |    | child_window[title="Page Layout", control_type="TabItem"]
   |    |    |    |    |    |    |
   |    |    |    |    |    |    | TabItem - 'Page Break Preview'    [L1146, T618, R1186, B639]
   |    |    |    |    |    |    | ['TabItem3', 'Page Break Preview', 'Page Break PreviewTabItem']
   |    |    |    |    |    |    | child_window[title="Page Break Preview", control_type="TabItem"]
   |    |    |    |    |    |    |
   |    |    |    |    |    |    | Button - 'Zoom Out'    [L1187, T618, R1205, B639]
   |    |    |    |    |    |    | ['Button2', 'Zoom Out', 'Zoom OutButton', 'Zoom Out0', 'Zoom Out1', 'Zoom OutButton0', 'Zoom OutButton1']
   |    |    |    |    |    |    | child_window[title="Zoom Out", control_type="Button"]
   |    |    |    |    |    |    |
   |    |    |    |    |    |    | Slider - 'Zoom'    [L1205, T618, R1305, B639]
   |    |    |    |    |    |    | ['Slider', 'ShareSlider']
   |    |    |    |    |    |    | child_window[title="Zoom", control_type="Slider"]
   |    |    |    |    |    |    |    |
   |    |    |    |    |    |    |    | Button - 'Zoom Out'    [L1205, T618, R1253, B639]
   |    |    |    |    |    |    |    | ['Button3', 'Zoom Out2', 'Zoom OutButton2']
   |    |    |    |    |    |    |    | child_window[title="Zoom Out", control_type="Button"]
   |    |    |    |    |    |    |    |
   |    |    |    |    |    |    |    | Thumb - 'Position'    [L1253, T623, R1258, B634]
   |    |    |    |    |    |    |    | ['Thumb', 'PositionThumb', 'Position', 'Thumb0', 'Thumb1', 'PositionThumb0', 'PositionThumb1', 'Position0', 'Position1']
   |    |    |    |    |    |    |    | child_window[title="Position", control_type="Thumb"]
   |    |    |    |    |    |    |    |
   |    |    |    |    |    |    |    | Button - 'Zoom In'    [L1258, T618, R1305, B639]
   |    |    |    |    |    |    |    | ['Button4', 'Zoom In', 'Zoom InButton', 'Zoom In0', 'Zoom In1', 'Zoom InButton0', 'Zoom InButton1']
   |    |    |    |    |    |    |    | child_window[title="Zoom In", control_type="Button"]
   |    |    |    |    |    |    |
   |    |    |    |    |    |    | Button - 'Zoom In'    [L1305, T618, R1323, B639]
   |    |    |    |    |    |    | ['Button5', 'Zoom In2', 'Zoom InButton2']
   |    |    |    |    |    |    | child_window[title="Zoom In", control_type="Button"]
   |    |    |    |    |    |    |
   |    |    |    |    |    |    | Static - 'Zoom 100%'    [L1323, T618, R1366, B639]
   |    |    |    |    |    |    | ['Static', 'Zoom 100%Static', 'Zoom 100%', 'Static0', 'Static1']
   |    |    |    |    |    |    | child_window[title="Zoom 100%", control_type="Text"]

Cây này chưa hoàn thành ở đây, nó sẽ đi trước nhiều. Bạn có thể chạy đoạn mã trên và tự kiểm tra

Trước khi tiếp tục đọc hoặc ghi dữ liệu trong bảng tính excel. Tôi muốn giới thiệu ngắn gọn cho bạn về công cụ Kiểm tra giao diện người dùng. Trong bài viết này, tôi sẽ đề cập đến Kiểm tra. exe nhưng cũng có những công cụ khác như UISpy. exe, v.v.

Quan sát. người cũ

Nó là một công cụ tuyệt vời được tạo bởi Windows. Bạn có thể tải xuống từ siêu liên kết kiểm tra ở trên. người cũ. Khi bạn mở công cụ này, hãy chuyển sang chế độ tự động hóa giao diện người dùng MS UI, nếu chúng tôi cần

Quan sát. exe là một ứng dụng sẽ cung cấp các id để bạn có thể trích xuất các mã định danh của bất kỳ phần tử nào từ giao diện người dùng. Vì vậy, trong cuộc thanh tra. exe chỉ tìm kiếm ID tự động hóa và bằng cách này, chúng tôi có thể truy cập vào bất kỳ phần tử nào từ cửa sổ ứng dụng

Ví dụ: Nếu bạn muốn ID tự động hóa của ô A1 trong bảng excel, chỉ cần nhấp chuột vào ô đó và bạn sẽ nhận được ID tự động hóa

Vì vậy, ID tự động hóa của ô A1 là A1. Do đó bây giờ chúng ta có thể sử dụng nó. Bây giờ, chúng ta sẽ sử dụng các id tự động hóa này để đọc và ghi dữ liệu trong bảng tính excel

Tự động đọc dữ liệu từ bảng tính excel

Chúng tôi sẽ đọc dữ liệu này từ tệp excel và in nó dưới dạng câu

Vì “We” được viết trong ô A1 và id tự động hóa của nó cũng là A1, nên bây giờ rõ ràng id tự động hóa của ô B1 là B1, đối với ô C1 là C1, v.v.

Vì vậy, để đọc dữ liệu dưới đây là mã

app = application.Application[]
app.start["Notepad.exe"]
0

đầu ra

app = application.Application[]
app.start["Notepad.exe"]
1

Giải trình

Bên trong vòng lặp, e_id là ID tự động hóa mà chúng tôi đang tạo cho mỗi ô. child_window[] được sử dụng ở đây để lấy một phần tử cụ thể trong đó ID tự động hóa được chuyển dưới dạng tham số. Sau đó, chúng tôi nhấp chuột vào bằng cách sử dụng click_input[] để lấy phần tử đó. Bây giờ, chúng tôi muốn đọc giá trị từ ô trong excel, vì vậy, hãy sử dụng Legacy_properties[][‘Value’]

Bây giờ, hãy tiếp tục và cố gắng viết vào dòng tiếp theo của bảng excel ở trên

Tự động ghi dữ liệu vào bảng tính excel

Ta sẽ ghi dữ liệu vào ô B3 của excel sheet. Ở đây bạn cũng có thể sử dụng kiểm tra. exe để lấy ID tự động của nó. Sau đó sử dụng mã này để ghi dữ liệu

app = application.Application[]
app.start["Notepad.exe"]
2

đầu ra

Giải trình

write_data là chuỗi mà chúng ta cần viết. Trong lần thứ hai, chúng tôi lại lấy phần tử đó và nhấp vào phần tử đó bằng cách sử dụng click_input[]. Bây giờ, để ghi dữ liệu vào ô B3, phương thức type_keys[] được sử dụng. Nó nhận 2 tham số, một là chuỗi được viết và hai là kiểm tra khoảng trống i. e with_spaces nếu khoảng trắng được giữ nguyên cũng sẽ được nhập trong khi ghi dữ liệu chuỗi

Cho đến bây giờ, chúng tôi đã thấy các trường hợp sử dụng pywinauto trên các ứng dụng notepad và excel. Bây giờ chúng ta sẽ thấy trường hợp sử dụng của nó trên máy tính. Nhưng trước khi tiếp tục, hãy để tôi giúp bạn biết thêm một số khái niệm trong pywinauto

Tự động hóa đầu vào bàn phím và chuột trong Windows

Hãy xem chi tiết cách chúng tôi có thể cung cấp đầu vào bàn phím và đầu vào chuột như nhấp chuột, nhấp đúp, nhấp chuột phải, nhấp chuột trái, v.v.

Để mô phỏng các đầu vào bàn phím, mô-đun send_keys[] được sử dụng

  • nhấn nhập. send_keys[‘{ENTER}’]
  • phím điều khiển của bàn phím [ctrl] được biểu diễn dưới dạng. '^'
  • phím alt của bàn phím được biểu diễn dưới dạng. '%'
  • phím shift của bàn phím được biểu diễn dưới dạng. '+'

Một số ví dụ về cách sử dụng chúng

  • Để nhấn Ctrl + A. send_keys['^a']
  • Để nhấn ALT+F4. send_keys[‘%{F4}’]
  • Để nhấn Ctrl+Alt+V. send_keys[‘^%V’]
  • Để nhấn Ctrl+A i. e. chọn tất cả rồi Ctrl+C [sao chép vào khay nhớ tạm]. send_keys['^a^c']

Để nhấp bằng chuột, bạn có thể sử dụng các phương pháp này trong pywinauto

  • click_input[]. nhấp vào một phần tử
  • pywinauto. con chuột. nhấp [nút = 'trái', tọa độ = [100,100]]. nhấp chuột trái vào tọa độ đã chỉ định
  • pywinauto. con chuột. double_click[button=’left’, coords=[100,100]]. nhấp đúp chuột trái vào tọa độ đã chỉ định
  • pywinauto. con chuột. right_click[coords=[100,100]]. nhấp chuột phải vào tọa độ đã chỉ định
  • pywinauto. con chuột. cuộn [coords=[100,100], wheel_dist=2]. nó thực hiện con lăn chuột

Chụp ảnh bằng pywinauto

Giả sử bạn muốn gỡ lỗi khi một ngoại lệ xuất hiện, trong trường hợp đó, bạn có thể chụp ảnh cửa sổ phía trước. Điều này có thể được thực hiện bằng cách sử dụng phương thức capture_as_image. Bạn có thể kích hoạt phương pháp này và lưu hình ảnh PIL kết quả vào một thư mục. Hãy xem cách bạn có thể thực hiện việc này nhưng đảm bảo tạo một image_folder trong cùng thư mục nơi tập lệnh của bạn đang chạy

app = application.Application[]
app.start["Notepad.exe"]
3

Ghi chú. Mã này đưa ứng dụng lên nền trước và sau đó nó chụp ảnh dựa trên vị trí. Vì vậy, có thể hình ảnh đã chụp có thể chứa một số phần của chương trình khác hoặc cửa sổ khác ở phía trước

Bây giờ, hãy lấy thêm một trường hợp sử dụng của pywinauto i. e. máy tính

Tự động tính toán trên Máy tính trong Windows

Bước 1. Thực hiện các thao tác nhập bắt buộc từ mô-đun Pywinauto và Desktop

app = application.Application[]
app.start["Notepad.exe"]
4

Bước 2. Như chúng ta đã thấy trong notepad và excel, chúng ta cần khởi động ứng dụng của mình bằng phương thức start của ứng dụng

app = application.Application[]
app.start["Notepad.exe"]
5

Bước 3. Bây giờ, nếu bạn muốn in các điều khiển của máy tính dưới dạng xem dạng cây

app = application.Application[]
app.start["Notepad.exe"]
6

Bước 4. Nhập dữ liệu vào máy tính khi cộng hai số 3 và 5

app = application.Application[]
app.start["Notepad.exe"]
7

Sau này nếu bạn muốn thu nhỏ cửa sổ máy tính hoặc mở lại, bạn có thể sử dụng

app = application.Application[]
app.start["Notepad.exe"]
8

Ngoài tất cả những điều này, Pywinauto còn được sử dụng rộng rãi để Kiểm tra GUI của các ứng dụng windows

Kiểm tra GUI của ứng dụng Windows

Kiểm tra giao diện người dùng đồ họa là một phần rất quan trọng của kiểm tra đảm bảo chất lượng. Điều này rất quan trọng vì nó cho phép bạn kiểm tra ứng dụng của mình xem có bất kỳ lỗi hoặc lỗi nào không để trải nghiệm người dùng trở nên mượt mà và dễ dàng. Theo cuốn sách Succeeding with Agile của Mike Cohn, kiểm thử giao diện người dùng nằm ở đỉnh của kim tự tháp kiểm thử tự động

Hình ảnh 2

Hình ảnh này cho thấy các bài kiểm tra giao diện người dùng tốn ít thời gian và công sức hơn so với các bài kiểm tra đơn vị và dịch vụ. Nhưng nhược điểm chính là UI test chỉ có thể được thực hiện ở giai đoạn mới nhất của vòng đời phát triển. Nhưng vì, việc kiểm tra GUI của các ứng dụng là từ góc nhìn của người dùng nên nó khá hữu ích và quan trọng

Trong bài viết này ở trên, chúng tôi đã tự động hóa một số ứng dụng như notepad, excel, máy tính, những khái niệm tương tự cũng có thể được sử dụng để kiểm tra tự động hóa GUI. Hãy để tôi cung cấp cho bạn những điểm ngắn gọn ở đây cũng để tự động hóa

1. Chạy ứng dụng bạn muốn kiểm tra. Hoặc bạn cũng có thể kết nối với ứng dụng đang chạy bằng id tiến trình của nó

2. Bây giờ xác định cửa sổ ứng dụng chính

3. Tìm các thành phần điều khiển cần thiết như trường văn bản, trình đơn thả xuống, thanh điều hướng, nút, v.v. từ ứng dụng

4. Thực hiện hành động của người dùng trên phần tử. Ví dụ: nhấp vào hộp văn bản và thêm một số văn bản ở đó

5. Phân tích kết quả

Bạn có thể thấy các bước này hoàn toàn giống với những gì chúng tôi đã làm ở trên

Chúng tôi đã nghiên cứu pywinauto để tự động hóa ứng dụng windows. Có nhiều mô-đun khác trong python để tự động hóa các loại tác vụ tự động hóa khác nhau. Hãy cũng xem xét chúng

Các mô-đun tự động hóa khác trong Python

Có nhiều loại thư viện tự động hóa khác nhau trong Python

  • Tự động hóa toàn bộ ngăn xếp
  • Tự động hóa giao diện người dùng đồ họa
  • Kiểm thử tự động

Thư viện tự động hóa toàn bộ ngăn xếp

1. selen

  • Đây là một trong những mô-đun phổ biến nhất được sử dụng trong Python để thực hiện kiểm tra và cũng cho phép bạn kết nối với các trình duyệt khác nhau
  • Mô-đun này chủ yếu được sử dụng để tự động hóa tương tác trình duyệt web chỉ bằng cách sử dụng Python
  • Bạn có thể thực thi toàn bộ bộ thử nghiệm với Selenium
  • Nó cũng cung cấp cho bạn sự linh hoạt để tạm dừng và tiếp tục một trường hợp thử nghiệm

2. yêu cầu

Với sự trợ giúp của mô-đun yêu cầu, bạn có thể gửi các yêu cầu HTTP như GET, POST, PUT, DELETE, PUT. Vì vậy, nó giúp ích cho bạn khi có các API liên quan đến tự động hóa

3. ĐẹpSúp

  • Nó được coi là thư viện tốt nhất để trích xuất dữ liệu từ các tệp HTML và XML
  • Nó là một công cụ tuyệt vời để quét web. Nó rất hữu ích nếu được sử dụng trên một trang web tĩnh đơn giản, nơi bạn phải tìm một số thông tin ẩn sâu bên trong mã HTML
  • Nhìn chung, đó là một thư viện tuyệt vời

tự động hóa GUI

Điều này chúng tôi đã thảo luận trong bài viết này. Nó có thể được thực hiện với các mô-đun này như Pywinauto và Pyautogui

1. Pyautogui

  • Nó cho phép các tập lệnh python của chúng tôi điều khiển chuột và bàn phím để có thể tương tác với các ứng dụng khác
  • Chúng tôi có thể dễ dàng chụp ảnh màn hình, gửi tổ hợp phím, v.v.
  • Pyautogui hoạt động trên hầu hết các hệ điều hành

Kiểm tra thư viện tự động hóa

1. Pytest

  • Đó là một khung nơi bạn có thể viết mã kiểm tra bằng ngôn ngữ python. Mọi thứ đều có thể được kiểm tra như API, cơ sở dữ liệu trong một số trường hợp cũng là giao diện người dùng
  • Chủ yếu nó được sử dụng để viết bài kiểm tra cho API

2. khung robot

  • Đây là một khung nguồn mở chung cho tự động hóa
  • Nó được sử dụng rộng rãi để tự động hóa thử nghiệm và tự động hóa quy trình robot
  • Khung này về cơ bản dựa trên python, nhưng cũng có thể được sử dụng với Jython i. e. Java và IronPython tôi. e. BỌC LƯỚI

3. gấu trúc

  • Đây là một thư viện mã nguồn mở cung cấp nhiều công cụ tốt để phân tích và thao tác dữ liệu
  • Nó được sử dụng rộng rãi để đọc dữ liệu từ các tệp như CSV, cơ sở dữ liệu SQL, tệp JSON, Excel
  • Nó có nhiều phương pháp sẵn có để kết hợp dữ liệu, chức năng lọc chuỗi thời gian, v.v.
  • Vì vậy, thư viện pandas theo mặc định được sử dụng cho các tác vụ liên quan đến dữ liệu nhưng cũng có thể được sử dụng để tạo các công cụ dữ liệu tập trung và mạnh mẽ hơn

Vì vậy, đây là tất cả về việc tự động hóa các ứng dụng Windows bằng thư viện Python Pywinauto

Nếu bạn gặp bất kỳ khó khăn nào khi làm việc trên pywinauto, bạn có thể sử dụng liên kết StackOverflow này để đăng truy vấn của mình hoặc đọc câu trả lời cho các câu hỏi đã đăng

Ghi chú kết thúc

Trong bài viết này, tôi đã cố gắng giải thích việc tự động hóa các ứng dụng windows với tất cả các công cụ và mã cần thiết. Bước tiếp theo, bạn có thể tiếp tục và thử tự động hóa các ứng dụng Windows như Paint, Windows Media Player, v.v. Nó khá thú vị khi làm tất cả những điều này

Tôi hy vọng bạn thấy bài viết này hữu ích. Bạn có thể kết nối với tôi trên Linkedin

Cảm ơn đã đọc nếu bạn đạt đến đây. ]

Mã hóa vui vẻ

  1. Hình ảnh 1. https. //www. c-bia. đồng. uk/keep-bình-tĩnh-và-tự-động-mọi-thứ/
  2. Hình ảnh 2. https. //www. tiên nghiệm. com

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của Tác giả

Python có thể được sử dụng cho các ứng dụng Windows không?

Nhưng trong bài viết này, chúng ta sẽ tự động hóa các ứng dụng windows. Vì vậy, để tự động hóa ứng dụng cửa sổ, chúng tôi sẽ sử dụng Python . Python cung cấp khả năng đọc tuyệt vời và cú pháp dễ học. Trong Python, chúng ta sẽ sử dụng mô-đun Pywinauto với mục đích duy nhất là tự động hóa các ứng dụng windows.

Tôi có thể tạo ứng dụng bằng Python không?

Python là ngôn ngữ lập trình mã nguồn mở rất phù hợp để tạo ứng dụng web và thiết bị di động . Các ứng dụng như Instagram và Dropbox được xây dựng bằng Python.

Python có thể được sử dụng để tự động hóa các tác vụ của Windows không?

Câu hỏi thường gặp về tự động hóa tập lệnh Python của Trình lập lịch tác vụ . Nếu tập lệnh của bạn hoạt động bằng cách sử dụng dấu nhắc lệnh, bạn có thể lên lịch để tập lệnh của mình chạy vào một ngày và giờ cụ thể. Yes, you can execute a Python script with Windows Task Scheduler. If your script works using the command prompt, you can schedule your script to run at a specific time and date.

Tôi có thể tạo GUI bằng Python không?

Việc tạo giao diện người dùng đồ họa [GUI] đơn giản hoạt động trên nhiều nền tảng có thể phức tạp. Nhưng không nhất thiết phải như vậy. Bạn có thể sử dụng Python và gói PySimpleGUI để tạo giao diện người dùng đẹp mắt mà bạn và người dùng của bạn sẽ thích.

Chủ Đề