Monday, November 30, 2015

Chương I: Lập trình auto đơn giản với Sikuli - Bài 4: Chọn một trong những đối tượng giống nhau.

Bài viết này sẽ hướng dẫn bạn làm thế nào để chọn một đối tượng trong khi có nhiều đối tượng giống nhau. Dưới đây là hình ảnh cửa sổ Dock trên máy Mac. Mục tiêu của chúng ta là đánh dấu chính xác vào ô trước dòng "Minimize windows into application icon".


Nếu như chỉ tìm kiếm hình ảnh của ô được chọn như dưới đây thì Script sẽ k chạy như mong muốn:
click()

 Sikuli sẽ không biết được đâu là ô cần click, nó sẽ click vào ô đầu tiên mà nó quét được. Dưới đây là phương pháp giúp bạn chọn được đối tượng mong muốn.

Đầu tiên bạn cần chọn toàn bộ khu vực của cửa sổ. Một cách để làm điều này là chúng ta chọn tiêu đề và quy định phần mở rộng phía dưới tiêu đề. Dưới đây là hình ảnh minh họa:

Câu lệnh để thực hiện điều này:
r = find().below(300)

Nó sẽ tìm kiếm tiêu đề và mở rộng khu vực với 300px phía dưới nhờ vào câu lệnh below. Khu vực này sẽ được gán cho biến r.

Tiếp theo, chúng ta có thể tìm kiếm nội dung bên phải ở trong khu vực biến r.
t = r. find()
click(t)

Nếu sử dụng hàm click(t) thông thường, Sikuli sẽ thực hiện thao tác click vào trung tâm bức ảnh. Nhưng điều mà ta mong muốn là Sikuli click bên phải bức ảnh.

Sikuli cung cấp chức năng chọn điểm click trong hàm click(). Đó là mục tarrget offset.




Trong giao diện này, chúng ta di chuyển dấu thập để xác định vị trí trỏ chuột click vào. Ở đây, X được xác định là -138, có nghĩa là điểm chọn mới lệch 138px về phía bên trái vị trí ban đầu. Sau khi chọn được điểm chữ thập, hình thu nhỏ sẽ được đánh dấu một chữ thập đỏ.

Tiếp đó, hàm click() sẽ có tác dụng click chuột vào ô vuông mục tiêu.


Bài tiếp theo tôi sẽ hướng dẫn các bạn các thao tác kéo thả đối tượng trên 1 thanh chọn.

Bài tiếp theo

No comments:

Post a Comment