Bài 23: Hướng dẫn viết Tool auto Python

Posted by tommy bao on tháng 11 09, 2021


*Các câu lệnh mấu chốt quan trọng cần nhớ rõ:
•driver.get   (1) tiền đề
•driver.find_element_by_xpath  (2)
•driver.find_element_by_id('')   (3)
•driver.find_element_by_name('')     (4)
•input()     (4a)
•driver.quit    (4b)
•.send_keys   (5)
•driver.set_window_size (700, 700)    (6)
•time.sleep (số giây muốn để)   (7)
•.click()   (8)
•driver.execute_script('')    (9)


*Chú thích ý nghĩa các lệnh:
•(1) là bắt buộc khai báo
•(2) là câu lệnh để auto tại vị trí khu vực image bằng hashtag Xpath mà ta F12 để tìm link trong phần tử của nó
•(3) là tương tự như (2) nhưng ta tìm link trong hashtag Id
•(4) là tương tự như (2) nhưng ta tìm link trong hashtag Name
*4a và 4b là 2 câu lệnh đi cặp với nhau để bổ trợ cho (4)
•(5) là là sau khi tìm được vị trí image mong muốn và ta muốn điền gì vào vị trí đó
•(6) là để size làm việc khi mở trình duyệt bằng auto
•(7) là số giây ta muốn Delay cho bước tiếp theo
•(8) là gọi chuột thao tác click ngay
•(9) là các code auto cho lập trình JS

*Các phần mềm cần có trên Windows để viết Tool:
1) Python 3.7.4  (tương thích hầu hết các Version Windows)
2) Selenium (Software tự động hóa)
3) Chrome Driver (Software kết nối Selenium+Chrome để Auto)


*Các bước Setup
Trước khi chạy Tool với Selenium, tôi ví dụ thư mục ở đây tên là: Tool  --  xong ta vào thư mục Tool, trên thanh đường dẫn phía trên ta click chuột vào và gõ: CMD rồi Enter  -- Cửa sổ Command Prompt hiện ra ta gõ: 
•pip install selenium  (cài đặt Selenium về máy)
•pip install pyinstaller (để nó load xong thì ta tắt cửa sổ Command Prompt)
Xong ta cài Chrome Driver,ta chọn Chrome Driver trùng với Version mà trình duyệt ta đang sử dụng theo đường link tham khảo sau:
https://chromedriver.chromium.org/downloads

Tiếp tục ta tải về và giải nén xong,ta chuyển Chrome Driver vào thư mục Tool,xong tại thư mục Tool,ta tạo 1 file tên ví dụ là: Auto, nhưng ta phải để đuôi file là .py (auto.py) (Nếu đổi đuôi file không được thì ta nhìn 4 tab trên cùng của thư mục,ta tích vào View  -- Tích vào ô File Name Extensions để nó xuất hiện phần đuôi .py)
Tiếp theo ta trở ra màn hình chính máy tính  -- vào thanh Search Home Win ta gõ: idle (được tích hợp sẵn trong Python mà ta đã cài đặt)   -- tab idle hiện lên ta gõ vào Open  -- bấm chọn file Auto.py đã tạo  -- Tab code hiện ra và ta bắt đầu viết như Demo sau:
•from selenium import webdriver   (1)
•import time  (2)
•dòng này để trống 
•driver = webdriver.Chrome()    (3)
•driver.get('https://facebook.com')  (4)
•driver.find_element_by_xpath('dán address Xpath Image khu vực UserName').send_keys('nhập tên login Facebook vào')   (5)
•driver.find_element_by_xpath('dán address Xpath Image khu vực mật khẩu').send_keys('nhập mật khẩu Facebook vào')   (6)
•driver.find_element_by_xpath('dán address phần tử nút Login').click()   (7)

Sau đó ta chạy thử bằng cách bấm Run bên trên tab viết Code -- Run Module 
Nếu test xong rồi thì ta đóng gói file lại như sau, tại đường dẫn thư mục Tool,ta gõ CMD và Enter -- tab Command Prompt hiện ra ta gõ:
•pyinstaller auto.py --noconsole --onefile    (bấm enter)

Sau khi đóng gói file xong và ta vào lại thư mục Tool  -- file Dist  -- và ta thấy đã xuất hiện file "auto.exe" , nhưng ta phải copy Chrome Driver thả vào chung với file auto.exe đó thì nó mới chạy được

Nếu ta muốn nén 2 file đó lại thành file Zip để tiện sử dụng thì ta bôi đen 2 file đó, chuột phải và chọn Send To -- Compresend (Zip) là xong.

*Chú thích ý nghĩa các lệnh:
•(1) là khai báo bắt buộc để module hoạt động auto được
•(2) là khai báo thời gian
•dòng này để trống (from và import phải để cách 1 dòng trống so với các lệnh thực thi)
•(3) là khai báo driver Chrome vào
•(4) là câu lệnh chủ đề và phía sau là website ta cần auto truy cập vào
•(5) là ta dùng phím F12 hoặc chuột phải chọn"Kiểm Tra" để lấy được phần tử Xpath và gán vào đuôi câu lệnh thực thi
•(6) như số (5)
•(7) như số (5)

**Nếu trong quá trình setup Selenium trong CMD mà báo lỗi không tải và install được các gói dữ liệu thì ta làm theo video này:
Link: https://youtu.be/dj5oOPaeIqI