def resizeApp(app, dx, dy): switchApp (app) corner = find(pattern(). TargetOffset(3, 14)) drop_point = corner.getTarget().offset (dx, dy). dragDrop(corner, drop_point) resizeApp("Safari", 50, 50)
Contoh ini mendefinisikan fungsi "resizeApp" untuk memperbesar jendela pada Mac, dan kemudian memanggil fungsi untuk memperbesar ukuran window Safari sebesar 50x50 piksel. Ada beberapa pendekatan untuk melakukan tugas ini. Yang paling sederhana adalah langsung mencari sudut dan tarik untuk memperbesar jendela.
Selain pendekatan ini sederhana, kami juga ingin menunjukkan kepada Anda cara yang lebih mungkin untuk melakukan hal yang sama. Contoh berikut menunjukkan bagaimana menggunakan spatial operator untuk memperpanjang atau membatasi wilayah pencarian Anda.
Pendekatan untuk menemukan sudut ini adalah untuk pertama mengidentifikasi sudut paling karakteristik dari window (sebagian besar dengan menggunakan tombol di window) dan kemudian mencoba untuk menemukan sudut lain yang relevan, untuk memastikan Anda mendapatkan titik klik yang Anda butuhkan. Strategi ini digambarkan di bawah ini. Kami ingin mencari sudut atas yang tepat, kemudian pergi ke kanan untuk menemukan sudut kanan atas, kemudian pergi ke bawah untuk menemukan sudut kanan bawah.
Script yang mengimplementasikan rencana ini dapat ditulis sebagai berikut:
# setShowActions(True) # men-debug switchApp("Safari") # mendapatkan jendela aktif frontmost Safari clickOffsetX, clickOffsetY) = (3, 18) # dievaluasi dengan menggunakan pratinjau di IDE MTL = find() # Find kiri atas # cetak MTL, hover (MTL) # debug mtr = mTL.nearby(200).right().find() # Find kanan atas # cetak MTR, hover (MTR) # debug MBR = mTR.below ().find() # Find kanan bawah, pojok sasaran # cetak MBR # men-debug # gerakkan mouse untuk mengklik titik hover (mBR.getCenter().Offset(clickOffsetX, clickOffsetY)) # exit () # men-debug mouseDown(Button.LEFT) # tekan dan tahan tombol kiri # menggerakkan mouse ke lokasi yang baru, dapat diulang dengan nilai-nilai lain mouseMove(Env.getMouseLocation().Offset(10, 10)) mouseUp () # rilis tombol mouse
Alur
kerja dan perpindahan mouse ke titik klik dapat dikompresi dalam satu baris (tidak ada pemeriksaan pada judul dalam kasus ini).hover(find()nearby(200).right().find()below().find().GetCenter().Offset(3, 18))
Secara umum:
- sebisa mungkin menemukan operasi dibatasi dalam suatu region, harus berisi match yang relevan, untuk meminimalkan risiko, bahwa sesuatu yang sama, yang lain, ditemukan. Di atas kondisi ini kecepatan script ini dicapai.
- contoh ini dengan mudah bisa berubah menjadi fungsi pembantu, di mana semua gambar dan variabel dapat diberikan sebagai parameter.
- titik klik dievaluasi dalam IDE menggunakan jendela pratinjau, tapi kemudian dimasukkan ke dalam kode untuk fleksibilitas dan mudah dibaca.
- fungsi tingkat rendah mouse yang digunakan, sehingga Anda akan lebih fleksibel dengan gerakan berkelanjutan.
- pendekatan pengembangan Sikuli, terlebih dahulu mendapatkan segalanya berjalan untuk mengevaluasi sudut yang relevan. Dalam fase ini, komentar memiliki "# debug". Semua tanda komentar akan memiliki umpan balik. Terutama setShowActions() dan exit() sangat membantu.
Tidak ada komentar:
Posting Komentar