- Hàm hỗ trợ Sikuli Scripts (Sử dụng lại code và hình ảnh):
Đây là những việc bạn có thể với Sikuli:
- Nhập .sikuli khác hoàn toàn tương thích với Python.
- Tự động nạp Python module khi sử dụng chức năng.
- Tự động truy cập hình ảnh trong .sikuli.
Điều kiện tiên quyết:
- a
- Các thư mục chứa .sikuli phải trong sys.path mới có thể đưa vào.
- Khi thư mục chứa .sikuli được đưa vào, Sikuli tự động tìm kiếm các Sikuli Script khác trong thư mục.
- Script bạn đưa vào cần phải chứa: from sikuli import * .
- Thêm đường dẫn tới Sikuli module vào sys.path.
- Nhập .sikuli bằng tên. Trong ví dụ, để nhập a_module.sikuli ta phải viết import a_module.
- Ví dụ:
# an example - choose your own naming # on Windows myScriptPath = "c:\\someDirectory\\myLibrary" # on Mac/Linux myScriptPath = "/someDirectory/myLibrary" # all systems if not myScriptPath in sys.path: sys.path.append(myScriptPath) # supposing there is a myLib.sikuli import myLib # supposing myLib.sikuli contains a function "def myFunction():" myLib.myFunction() # makes the call
Lưu ý về hình ảnh: Cùng với việc nhập, Sikuli sử dụng các SIKULI_IMAGE_PATH để đảm bảo rằng các hình ảnh trong .sikuli được tìm tự động.
Tải một file Jar chứa các Java/Python modules:
load(jar-file)
Tải một file Jar và đặt đường dẫn tuyệt đối để nó vào sys.path vì vây code Java/Python trong đó được nhập vào.
Thông số: file-jar hoặc bất kỳ một filename.jar mà không cần đường dẫn tuyệt đối.
Trả về: True nếu file được tìm thấy, nếu không là false.
Hàm điều khiển Scipt Sikuli:
setShowActions(False/True)
Nếu thiết lập là true, khi Script được chạy, Sikuli cho thấy một hiệu ứng hình ảnh (nhấp nháy vòng tròn màu đỏ) ngay tại chỗ mà hành động diễn ra ngay trước khi hành động được thực hiện.
exit(trị số)
Dừng chạy các đoạn Script.
class Settings
Settings.ActionLogs
Settings.InfoLogs
Settings.DebugLogs
Có thể lựa chọn bật (True) hoặc tắt (False). Để hiện thị hoặc ẩn các thông báo trong giao diện điều khiển IDE hoặc trên dòng lệnh ([log],[info],[debug]).
Settings.MinSimilarity
Trong khi sử dụng Region.find(), nếu chỉ có 1 tập tin được cung cấp, Sikuli tìm kiếm các khu vực sử dụng với minimum similarity là 0.7
Settings.MoveMouseDelay
Kiểm soát thời gian di chuột đến một vị trí mũ tiêu bằng cách thiết lập giá trị này thành một giá trị thập phân (mặc định là 0,5). Đợn vị là giây. Thiết lập 0 chuột sẽ "nhảy" đến các vị.
Thời gian từ lúc di con chuột từ vị trí này đến vị trí mục tiêu là 0,5s. Trong thời gian này, con trỏ chuột di chuyển chậm dần.
mmd = Settings.MoveMouseDelay # save default/actual value click(image1) # implicitly wait 0.5 seconds before click Settings.MoveMouseDelay = 3 click(image2) # give app 3 seconds time before clicking again Settings.MoveMouseDelay = mmd # reset to original value
Settings.DelayAfterDrag
Settings.DelayBeforeDrop
Settings.DelayAfterDrag quy định cụ thể thời gian chờ sau khi chuột rời vị trí ban đầu với 1 số thập phân (đơn vị giây)
Settings.DelayBeforeDrop quy định cụ thể thời gian chờ khi chuột ở vị trí mục tiêu (đơn vị giây).
Cách dùng: Khi sử dụng Region.drapDrop, bạn có thể sẽ gặp những tình huống không như mong đợi. Điều này có thể là do các hành động của Sikuli quá nhanh đối với các ứng dụng đích đến. Với việc thiết lập thời gian chờ sau khi chuột rời vị trí ban đầu và khi chuột ở vị trí mục tiêu bạn sẽ dễ dàng kiểm soát được hoạt động của drapDrop. Thiết lập tiêu chuẩn là 0,3s cho mỗi giá trị. Đó là thời gian để di chuột từ vị trí ban đầu đến mục tiêu được điều khiển bởi Settings.MoveMouseDelay
# you may wish to save the actual settings before Settings.DelayAfterDrag = 1 Settings.DelayBeforeDrop = 1 Settings.MoveMouseDelay = 3 dragDrop(source_image, target_image) # time for complete dragDrop: about 5 seconds + search times
Settings.SlowMotionDelay kiểm soát thời gian của các hoạt động.
Settings.WaitScanRate
Settings.ObserveScanRate
Quy định số lần tìm kiếm trong một giây khi chờ hình ảnh xuất hiện hoặc kết thúc.
Khi sử dụng Region.wait(), Region.exists(), Region.waitVanish(), Region.observe(), Sikuli quy định tiêu chuẩn là 3 hoạt động trên giây. Để hạn chế việc sử dụng quá nhiều tài nguyên hệ thống, bạn có thể thiết lập các giá trị cho phù hợp. Giá trị được sử dụng như là một tỉ lệ trên mỗi giây, xác định trong khoảng từ 0 đến 1, dẫn đến quét mỗi x giây.(Vd quy định là 0,5 nó sẽ quét 2 lần mỗi giây).
def myHandler(e): print "it happened" # you may wish to save the actual settings before Settings.ObserveScanRate = 0.2 onAppear(some_image, myHandler) observe(FOREVER, background = True) # the observer will look every 5 seconds # since your script does not wait here, you # might want to stop the observing later on ;-)
Settings.ObserveMinChangedPixels
Kích thước ảnh tối thiểu của việc thay đổi một sự kiện khi sử dụng Region.onChange() mà không dùng gia trị mặc định.(50)
chào anh. Anh có thể giúp e thực hiện điều này trong Sikulix được không. Em muốn thục hiện 1 vòng lặp vô tận, click vào 10 hình ảnh trên màn hình. E sử dụng lệnh:
ReplyDeletecount = 0
while (count ==0):
click(hinh1)
click(hinh2)
.....
click(hinh10)
Nếu như thế này thì nếu cả 10 hình ảnh đều có trên màn hình thì lặp vô tận. Nhưng nếu có 1 hình ảnh nào đó không xuất hiện thì vòng lặp sẽ thoát ra. giờ e muốn nếu có 1 hình ảnh không xuất hiện thì Sikulix k thoát ra mà quay lại click từ hình 1đến 2.. đến 10.
Mong anh giúp đỡ.