5 Lỗi Thường Gặp & Cách Giải Quyết Khi Phát Triển Một Dự Án RPA

Những điều bạn học được từ các khóa học RPA public tại trang Academy của các Platform hàng đầu thế giới chỉ là một phần nhỏ kiến thức trong lĩnh vực RPA rộng lớn. Để có thể phát triển một quy trình RPA thuận lợi, ngoài lý thuyết về các bước thao tác, bạn cũng cần biết đến một số lỗi thường gặp mà nhiều người thường mắc phải. Điều này giúp các bạn dễ dàng xử lý vấn đề nếu gặp phải, chủ động tránh những lỗi này, đảm bảo bot hoạt động mạnh mẽ và ổn định.

Bài viết này đề cập những điều cần lưu ý khi thiết kế một quy trình RPA. Hi vọng kinh nghiệm được chia sẻ từ akaBot sẽ giúp bạn có một dự án RPA thuận lợi và thành công.  

Lỗi “Selector Not Found/UI Element Not Found”

Đây là một vấn đề rất phổ biến. Bạn có thể nhìn thấy các câu hỏi về vấn đề này rất nhiều lần trên các cộng đồng về RPA. Điều này xảy ra do một trong những nguyên nhân sau:

  • Sự khác nhau giữa các môi trường dev, UAT, live…
  • Các giá trị động của các thuộc tính “cls” hay “title” hoặc CSS khác nhau.
  • Không có bước kiểm tra sự tồn tại của một phần tử trước khi click hay typeinto vào trường đó.
  • Sử dụng các selector để tạo ra tiêu đề hay một thuộc tính nhưng selector đó không được định dạng đúng hay được điều chỉnh đúng.
  • Sử dụng thuộc tính ID. Đôi khi ID của phần tử đó là ID động, sẽ thay đổi sau mỗi lần thực hiện.
  • Sử dụng các selector lên Attach Browser/ Attach window, tuy nhiên chưa định nghĩa cho các attach đó.

“Object reference not set to an instance of an object”

Lỗi này thường xảy ra khi bạn sử dụng một biến khống được đặt giá trị (không được khởi tạo). Có nghĩa là bạn đang cố truy cập vào một đối tượng chưa được khởi tạo. Đây là một lỗi rất phổ biến và có thể xảy ra vì rất nhiều lý do. Nguyên nhân phụ thuộc vào từng tình huống cụ thể. Để tránh lỗi này, bạn nên thực hiện các việc sau:

  • Kiểm tra Null trước khi sử dụng một biến cụ thể trong câu lệnh IF.
  • Kiểm tra xem bạn có đang sử dụng các arguments được gọi đến từ các workflow trước đó không.
  • Kiểm tra xem bạn có đang sử dụng clipboard để đặt các giá trị cho biến hay không.
  • Kiểm tra xem bạn đã add nội dung của một file cho biến mà bạn sử dụng sau khi đã có thao tác đọc file đó chưa.
  • Kiểm tra và validate các giá trị DataTable, DataColumn… trước khi vào vòng lặp.
  • Kiểm tra datatype của các biến bạn sử dụng.

Lỗi “Activity timeout exceeded”

Lỗi này xảy ra khi robot đang đợi một số phần tử xuất hiện trên màn hình và phần tử đó không xuất hiện ngay cả sau 30 giây (thời gian chờ mặc định). Nguyên nhân thường do:

  • Có thể là hình ảnh của các phần tử đó đã hiện lên nhưng ở mã nguồn của nó vẫn chưa được tải đầy đủ trên hệ thống.
  • Đã bị chặn bởi một số màn hình không mong muốn bật lên.
  • Do độ trễ của mạng mà nó không hiển thị đúng trong khoảng thời gian chờ nhất định.
  • Element nằm ở một màn hình khác hoàn toàn với màn hình đang được active.

Hầu hết các vấn đề này có thể được khắc phục bằng cách sử dụng activity “Element Exist” trước khi thực hiện bất kỳ một activity nào lên một element (như Click, Type Into, Double Click, Hover…). Hoặc các bạn có thể sử dụng một vòng “Do While” để detect một element xuất hiện. Để tránh các trường hợp như vậy các bạn cần:

  • Tăng khoảng thời gian chờ trong trường “Timeout”. Việc này bạn cần đảm bảo khoảng Timeout bạn sử dụng đủ để element bạn sử dụng xuất hiện.
  • Sử dụng Do While để detect được Element bạn cần xuất hiện.
  • Sử dụng “Element Exist” trước bất kỳ một activity nào thao tác với các element.

Lỗi “Image not found”

Vấn đề này xảy ra khi bạn thực hiện chạy bot thông qua Center hay Orchestrator, hay bất kỳ một bộ monitor từ xa của một platform nào. Bạn thực hiện mà không đảm bảo được độ phân giải của màn hình đang sử dụng để phát triển bot giống với màn hình mà bot đang thực hiện trên môi trường live. Hoặc hình ảnh bạn sử dụng để thao tác đang không được hiển thị trên màn hình lúc đó. Bạn cần thao tác cuộn chuột, hoặc tắt đi một cửa sổ nào đó đang hiện lên và che đi hình ảnh.

Để tránh những điều này, hãy đảm bảo áp dụng cùng một thông số cài đặt độ phân giải màn hình cho robot để người điều khiển mở RDP (Remote Desktop):

  • Trước tiên, hãy cài đặt độ phân giải màn hình của môi trường live giống với môi trường dev.
  • Sử dụng “Take Screenshot” activity và “Save Image” activity để ghi lại độ phân giải của môi trường Dev.
  • Kiểm tra Tab chi tiết trong thuộc tính của hình ảnh đã lưu. Lưu ý đến các thông số: depth, height và width.
  • Đăng nhập vào ứng dụng hoặc nền tảng monitor của platform bạn sử dụng để thay đổi cài đặt RunTime cho phù hợp với các thông số bạn đã lưu lại.
  • Đặt LoginToConsole thành False. Để trong các tình huống khi RDP bị đăng xuất, robot sẽ có thể tạo một phiên làm việc mới của riêng nó.
  • Khởi động lại Services.

Lưu ý quan trọng: bạn cần Log off/ Sign off khỏi máy deploy Robot thay vì ngắt kết nối với máy đó.

Lỗi lưu file tải về (Issue with saving downloaded file)

Đây cũng là một rắc rối thật sự đối với nhiều developer khi họ phải đối mặt với việc lưu các file tải về xuống vị trí mong muốn. Một số lỗi thường gặp:

  • Không thể lưu file vào vị trí cụ thể.
  • Lưu file dưới dạng Selector không hoạt động, không tồn tại.
  • Thư mục được nhập vào để lưu file không hoạt động, không tồn tại.
  • Đối mặt với các rủi ro lưu file ngày hiện tại, ngày T…
  • Không thể thao tác với toolbar khi lưu file thông qua IE.
  • Hiện tượng Force Download của Chrome.
  • Chọn kiểu file để lưu khi lưu dữ liệu qua IE (Cần chọn kiểu file qua việc click vào Dropdown).

Không có một cách giải quyết chung nào cho tất cả các vấn đề trên, cách giải quyết phụ thuộc vào việc bạn setting trình duyệt như thế nào.

Lưu file dưới dạng Selector không hoạt động, không tồn tại. Điều này thường xảy ra khi Selector không chính xác đối với giá trị lớp tham chiếu đến hộp thoại. Bạn cần đảm bảo kiểm tra thuộc tính cls của nút saveas.

Để kiểm soát được các vấn đề trong khi nhập đường dẫn, bạn có thể sử dụng cú pháp: path + ”\” + document_name + ”.extension ”+” [k (enter)] ”, bật thuộc tính SENDWINDOWMESSAGE và tắt SIMULATE TYPE; đồng thời đặt một số dấu thời gian trong DELAYBETWEENKEYS khoảng 2000 milisecond.

Để lưu file theo ngày T, ngày hiện tại thì hãy sử dụng: “filename_” + now.tostring(“ddMMyyyy”) + ”.extension”. Các bạn có thể lựa chọn format ngày tháng năm tùy chọn.

Đối với các vấn đề liên quan đến lưu vị trí bằng Chrome, hãy tích/không tích vào “Show Download Prompt (Checkbox)”. Nếu tích sẽ hiện lên hộp thoại hỏi vị trí lưu file, nếu không tích thì file sẽ được mặc định tải về một folder đã được cài đặt sẵn.

Trên đây là 5 lỗi thường gặp trong quá trình phát triển một dự án RPA và cách giải quyết. Hi vọng với bài viết này, bạn sẽ vượt qua các “thử thách” trong dự án một cách nhẹ nhàng hơn.

Happy Automation!

(*) Ảnh minh hoạ lấy từ nhiều nền tảng RPA khác nhau, chỉ nhằm mục đích minh hoạ nội dung bài viết phục vụ kiến thức cho cộng đồng, không nhằm mục đích đánh giá các nền tảng.

akaBot (FPT Software) là nền tảng RPA tiên phong tại Việt Nam, được định vị thương hiệu quốc tế. Hiện đang phục vụ khách hàng tại trên 13 quốc gia, 8 ngành dọc (tài chính – ngân hàng, bán lẻ, IT, sản xuất….), akaBot đã giành nhiều giải thưởng trong nước và quốc tế về giải pháp số như: Giải “Oscar của giới công nghệ” Stevie Award, top 6 nền tảng RPA thế giới do Software Reviews bình chọn, top 10 Sao Khuê 2020, v.v… akaBot cam kết cung cấp giải pháp Tự động hoá nhanh & Tự động hoá hàng loạt cho doanh nghiệp với chi phí cạnh tranh nhất trên thị trường.

Liên hệ đội ngũ akaBot để tìm hiểu thêm về RPA & nền tảng akaBot!

0 Share
Subscribe to Our Newsletter
Donec euismod arcu vel neque volutpat, sed ullamcorper tortor blandit. Spendisse potenti lacus neque.