Giới thiệu cơ bản về giao diện và khái niệm các nodes

Để bắt đầu sử dụng Kiki Automation 4.0, bạn truy cập vào Kiki Automation góc phải màn hình

1. Khu vực chỉnh sửa kịch bản

Cơ bản về logic lập trình sẽ có Start (Khởi đầu) và End (Kết thúc) và 1 quá trình các Nodes chạy. Quá trình chạy từ Start đến End sẽ thực hiện một chuỗi các node được xác định trước đó, và mỗi node có thể thực hiện một nhiệm vụ cụ thể. Logic lập trình sẽ đảm bảo rằng các node được thực thi theo đúng thứ tự và logic để đạt được kết quả mong muốn.

Kịch bản (Script) là một bản thảo về nội dung, cho biết diễn biến các sự kiện cần xảy ra khi thực hiện hoạt động cụ thể như: tương tác, seeding bài viết, chạy quảng cáo,...

1.1. Start (Khởi đầu)

Điểm bắt đầu của chương trình hoặc quá trình thực thi. Tại điểm này, các tài nguyên cần thiết sẽ được khởi tạo và các biến cần thiết sẽ được gán giá trị ban đầu. Đây là nơi bắt đầu của luồng thực thi kịch bản

1.2. Nodes (Các nodes)

Các nodes là các khối công việc hoặc các đơn vị xử lý nhỏ hơn trong chương trình. Chúng có thể là các hàm, lệnh, hoặc thậm chí là các cấu trúc điều khiển như vòng lặp hay câu điều kiện. Các nodes sẽ được thực thi theo một thứ tự xác định để thực hiện các công việc cụ thể.

1.3. Stop (Kết thúc)

Điểm kết thúc của luồng thực thi kịch bản

1.4. Flow (Luồng)

Có 2 đầu là Đầu vào và Đầu ra

1.5. Cấu hình biến (variable)

Là quá trình xác định và gán giá trị cho một biến trong lập trình

Cấu hình biến "BROWSER_PROFILE_ID" và "BROWSER_PROFILE_NAME" là hai biến đặc biệt được sử dụng trong ngữ cảnh của hệ thống chạy các tác vụ tự động trên trình duyệt.

  • BROWSER_PROFILE_ID: Đây là một biến dùng để định danh một cấu hình trình duyệt cụ thể. Trong môi trường chạy các tác vụ tự động, thường có nhiều cấu hình trình duyệt được tạo ra để sử dụng cho các mục đích khác nhau. Mỗi cấu hình sẽ có một ID riêng để phân biệt và sử dụng trong quá trình chạy tác vụ.

  • BROWSER_PROFILE_NAME: Đây là một biến dùng để đặt tên cho cấu hình trình duyệt. Tên này có thể thể hiện mục đích sử dụng hoặc các thông tin liên quan đến cấu hình trình duyệt đó. Việc đặt tên cho cấu hình giúp người dùng dễ dàng nhận biết và quản lý các cấu hình trình duyệt trong hệ thống.

1.6. Log chạy kịch bản (Script Execution Log)

Là một cơ chế cung cấp thông tin chi tiết về quá trình chạy kịch bản, bao gồm cả thành công và thất bại. Nó ghi lại các sự kiện và trạng thái của các bước thực thi trong kịch bản, giúp người dùng kiểm tra và phân tích kết quả của quá trình chạy.

  • Success (Thành công): Biến đã được khởi tạo và sử dụng thành công trong quá trình chạy kịch bản, không gây ra lỗi hoặc vấn đề nào.

  • Failed (Thất bại): Biến không thể khởi tạo hoặc sử dụng do một số lỗi xảy ra, ví dụ như sai cú pháp, không tìm thấy biến, hoặc lỗi kết nối.

  • Variable state là các trạng thái biến mô tả tình trạng hoạt động của các biến trong quá trình chạy kịch bản

2. Khái niệm các Nodes trong Kiki Automation

2.1. Navigation (Điều hướng)

  1. New tab (Mở tab mới): thực hiện thao tác mở tab mới trên cửa sổ trình duyệt của profile

  2. Activate tab (Kích hoạt tab): thực hiện thao tác đổi sang tab khác đang mở theo vị trí tab hoặc đường dẫn URL

  3. Close tab (Đóng tab): cài đặt vị trí của tab cần thực hiện thao tác đóng tab

  4. Open URL (Mở URL): Bắt đầu URL được chỉ định trên tab

  5. Refresh page (Làm mới trang): Làm mới trang trên tab

2.2. Mouse (Thao tác chuột)

  1. Click (Nhấp chuột): Nhấp chuột tại vị trí được chỉ định trên trang web. Bạn có thể chọn các nút mà bot sẽ sử dụng hoặc chỉ định điều kiện như tọa độ hay phần tử định dạng XPath.

  2. Move mouse (Di chuyển chuột): Sao chép chuyển động chuột đến các tọa độ được chỉ định.

  3. Scroll (Cuộn trang): Giả lập cuộn chuột trên trang web đến một tọa độ cụ thể

Ví dụ trong step Click này, bạn có thể:

  1. Chọn các nút mà bot sẽ sử dụng: Left/ Right/ Center

  2. Xác định Selector (bộ chọn) gồm 3 loại:

  • XPath: cho phép bạn tìm kiếm các phần tử dựa trên bất kỳ thuộc tính nào của chúng. Bạn có thể sử dụng XPath để tìm kiếm các phần tử trong cây DOM, giúp tìm ra tác giả bài viết trên blog, hoặc thậm chí tìm kiếm trong bảng dữ liệu phức tạp.

  • CSS: Đây là một ngôn ngữ dùng để mô tả cách hiển thị các tài liệu có cấu trúc (như HTML và XML). CSS được sử dụng phổ biến hơn vì nó tiện lợi và thường dễ dàng hơn khi tìm kiếm các phần tử.

  • Text: Đây là một phiên bản đơn giản hơn của hai phương pháp trên. Bạn chỉ cần chọn văn bản trên một trang cụ thể và sử dụng

  1. Chọn Coordinates (tọa độ) của Selector:

  • Giúp mô phỏng việc nhấp chuột vào các tọa độ được chỉ định trên trang. Bạn có thể dễ dàng tìm thấy tọa độ này bằng cách cài đặt một tiện ích đơn giản cho trình duyệt Chrome theo hướng dẫn tại đây

2.3. Keyboard (Thao tác bàn phím)

  1. Press key (Nhấn phím): chỉ định phím mà bạn muốn bot nhấn vào trong vùng điền thông tin.

  2. Write (Viết): xác định văn bản mà bạn muốn bot gõ vào trong vùng điền thông tin. Tương tự như Mouse (Thao tác chuột) cũng có 3 selector, bạn cũng có thể tuỳ chỉnh Speed (Tốc độ gõ)

2.4. Data (Thao tác dữ liệu)

  1. Array utils (Lấy giá trị từ mảng):

    • Cho phép thao tác với mảng (danh sách) các giá trị.

    • Bạn có thể thêm, xóa, sắp xếp và truy cập các phần tử trong mảng.

  2. Chat GPT:

    • Dùng để tạo các hội thoại tự động với Chat GPT.

    • Bạn cung cấp văn bản đầu vào và Chat GPT sẽ trả lời tự động dựa trên ngữ cảnh của văn bản đó.

  3. Cookie:

    • Cho phép thao tác với cookie của trình duyệt.

    • Bạn có thể thêm, xóa và truy xuất thông tin từ các cookie.

  4. Pick element (Chọn phần tử): Dùng để chọn một phần tử trên trang web bằng cách cung cấp một bộ chọn như XPath hoặc CSS selector.

  5. Spin content (Tạo nội dung ngẫu nhiên):

    • Dùng để tạo ra các biến thay thế ngẫu nhiên trong văn bản.

    • Dùng Spintax để tạo ra các biến thay thế ngẫu nhiên từ các tùy chọn được định nghĩa trước.

  6. Get elements (Lấy danh sách các phần tử): Cho phép lấy danh sách các phần tử trên trang web dựa trên một bộ chọn như XPath hoặc CSS selector.

  7. Get GG Sheet (Lấy dữ liệu từ Google Sheets): Cho phép lấy dữ liệu từ Google Sheets bằng cách sử dụng Google Sheets API và cung cấp thông tin xác thực.

  8. Element exists (Kiểm tra sự tồn tại của phần tử): Kiểm tra xem một phần tử có tồn tại trên trang web hay không dựa trên một bộ chọn như XPath hoặc CSS selector.

  9. Get URL (Lấy địa chỉ URL): Lấy địa chỉ URL của trang hiện tại và gán cho một biến để sử dụng sau này.

  10. Get note (Lấy ghi chú): Cho phép lấy ghi chú của một phần tử trên trang web bằng cách cung cấp một bộ chọn như XPath hoặc CSS selector.

  11. Get text (Lấy văn bản): Lấy văn bản của một phần tử trên trang web bằng cách cung cấp một bộ chọn như XPath hoặc CSS selector.

  12. Get value (Lấy giá trị): Lấy giá trị của thuộc tính "value" từ một phần tử trên trang web bằng cách cung cấp một bộ chọn như XPath hoặc CSS selector.

  13. Get attribute (Lấy thuộc tính): Lấy giá trị của một thuộc tính cụ thể từ một phần tử trên trang web bằng cách cung cấp một bộ chọn như XPath hoặc CSS selector.

  14. Get properties (Lấy các thuộc tính): Lấy các thuộc tính và giá trị của một phần tử trên trang web bằng cách cung cấp một bộ chọn như XPath hoặc CSS selector.

  15. Get 2Captcha (Lấy giải mã Captcha từ 2Captcha): Sử dụng dịch vụ 2Captcha để giải captcha tự động.

  16. Get OTP (Lấy mã OTP (One-Time Password): Nhận mã OTP từ một số điện thoại đã tạo

  17. Random (Ngẫu nhiên): Tạo văn bản ngẫu nhiên như email, họ tên, ký tự ngẫu nhiên, mật khẩu, số điện thoại, v.v.

  18. File upload (Tải lên tệp tin): Tải lên một tệp tin lên trang web bằng cách cung cấp đường dẫn tới tệp tin và một bộ chọn để xác định vị trí tải lên.

  19. Read file (Đọc tệp tin): Đọc dữ liệu từ một tệp tin trên ổ cứng.

  20. Write file (Ghi tệp tin): Ghi dữ liệu vào một tệp tin trên ổ cứng.

  21. Http request (Yêu cầu HTTP): Tạo yêu cầu HTTP tới một URL cụ thể và xử lý kết quả.

  22. Set variable (Đặt biến): Tạo một biến và gán giá trị cho nó để sử dụng trong các bước tiếp theo.

2.5. Other (Khác)

  1. Import Script: Nối các kịch bản đã có trong "Kịch bản của tôi" để thực hiện chạy các kịch bản khác nhau trong cùng một lần chạy mà không cần phải chạy riêng từng kịch bản đó.

  1. Switch Frame: Chuyển đổi giữa các khung (frame) trong trang web để thực hiện các hành động trong khung tương ứng.

  2. Clipboard: Thao tác với clipboard (bộ nhớ tạm) của hệ thống, cho phép sao chép hoặc dán nội dung văn bản.

  3. Switch extension: Chuyển đổi giữa các extension (tiện ích mở rộng) trình duyệt để thực hiện các chức năng khác nhau.

  4. Confirm dialog: Hiển thị hộp thoại xác nhận với lựa chọn "OK" hoặc "Cancel" để thực hiện hành động dựa trên lựa chọn người dùng.

  5. Pause: Tạo một độ trễ trước khi thực hiện block tiếp theo, mô phỏng hành động của người dùng thực tế, ví dụ: chờ cho nút xuất hiện trên trang web hoặc chờ để nhận mã xác nhận SMS từ trang web.

  6. If: Kiểm tra một điều kiện được xác định trước, nếu điều kiện đúng (True) thì thực hiện một chuỗi hành động theo "green thread", nếu sai (False) thì thực hiện một chuỗi hành động theo "red thread".

  7. Eval: Thực thi mã JavaScript ngay lập tức và trả về kết quả, cho phép thực hiện các tác vụ phức tạp hơn.

  8. Foreach: Thực hiện một chuỗi hành động cho mỗi phần tử trong mảng (mảng được lấy từ chức năng "Read file").

  9. While: Kiểm tra điều kiện trước mỗi vòng lặp, nếu điều kiện đúng, thực hiện chuỗi hành động theo "red thread", nếu không, thực hiện chuỗi hành động theo "green thread".

  10. For: Kiểm tra điều kiện trước mỗi vòng lặp và thực hiện một số lần nhất định, cho phép lặp lại hành động một số lần xác định trước.

  11. Comment: Tạo hộp chú thích trên bản thiết kế để giải thích hoặc ghi chú về các hành động đã thực hiện.

  12. Stop: Đóng cửa sổ trình duyệt sau khi hoàn thành tất cả các hành động đã chỉ định.

3. Tìm hiểu thêm các thuật ngữ thường gặp

3.1. Phần tử

Trong toán học, một phần tử của một tập hợp là bất kỳ một trong các đối tượng riêng biệt tạo nên tập hợp đó.

3.2. Biến

Biến (variable) đại diện cho vùng nhớ lưu trữ dữ liệu (trên RAM) của chương trình. Biến chứa giá trị nhập vào, giá trị của một biểu thức, giá trị tính toán hoặc xử lý trong chương trình. Biến được nhận dạng thông qua tên biến và kiểu dữ liệu.Biến được sử dụng như thế nào?Biến cần được khai báo trước khi dùng (đọc/ghi giá trị). Chương trình tự động cấp phát vùng nhớ khi một biến được khai báo.

3.3. Mảng

Mảng là một tập hợp gồm một số cố định các phần tử có cùng kiểu dữ liệu, dùng để lưu trữ dữ liệu.

Số phần tử của mảng là 1 số cố định nên sau khi đã khai báo mảng bạn sẽ không thể thêm 1 phần tử mới hay xóa phần tử hiện tại

3.4. Vòng lặp

Trong lĩnh vực lập trình, vòng lặp là một mã mà một câu lệnh thực thi lặp đi lặp lại . Sự lặp lại này được duy trì cho đến khi điều kiện được gán cho vòng lặp không còn được đáp ứng.Lập trình thường yêu cầu thực hiện lặp lại một loạt các hướng dẫn. Sao chép không phải là cách thay thế tốt nhất vì nó làm tăng phần mở rộng tệp và gây khó khăn trong trường hợp bạn cần cập nhật mã. Trong bối cảnh này, vòng lặp xuất hiện như một lựa chọn thuận tiện.

3.5. Thuộc tính

Trong điện toán, thuộc tính (tiếng Anh: attribute) là một đặc tả định nghĩa đặc tính của một đối tượng, phần tử, hay tập tin. Nó còn có thể chỉ đến giá trị cho một thực thể cụ thể.Một thuộc tính của một đối tượng thường chứa một tên và một giá trị; của một phần tử, một loại hay tên lớp; của một tập tin, một tên và phần mở rộng.

3.6. Giá trị phần tử

3.7. Điều kiện If, else

Trong JavaScript, điều kiện là một biểu thức so sánh để đưa ra một giả thuyết.

  • Nếu giả thuyết đúng, đồng nghĩa với việc điều kiện đúng và điều kiện sẽ nhận giá trị là true.

  • Nếu giả thuyết sai, đồng nghĩa với việc điều kiện sai và điều kiện sẽ nhận giá trị là false.

Ví dụ:

Lệnh if ... else dùng để kiểm tra một điều kiện, nếu điều kiện đó là đúng thì một đoạn mã xác định sẽ được thực thi, còn nếu điều kiện đó sai thì một đoạn mã xác định khác sẽ được thực thi.

Cú pháp:

if(điều kiện){
    //đoạn mã này sẽ được thực thi nếu điều kiện là đúng
}else{
    //đoạn mã này sẽ được thực thi nếu điều kiện là sai
}

Lệnh if ... else if ... else là một dạng nâng cao của lệnh if ... else

Lệnh if ... else if ... else dùng để mở rộng phạm vi kiểm tra các điều kiện khác nếu tất cả những điều kiện phía trên là sai.

Cú pháp:

if(điều kiện 1){
    //đoạn mã này sẽ được thực thi nếu điều kiện 1 là đúng
}else if(điều kiện 2){
    //đoạn mã này sẽ được thực thi nếu điều kiện 1 sai và điều kiện 2 là đúng
}else{
    //đoạn mã này sẽ được thực thi nếu tất cả những điều kiện trên là sai
}

Lưu ý: Đối với lệnh if ... else if ... else thì không giới hạn số lượng điều kiện.

3.8. Thành phần của một liên kết

Last updated