Hata ayıklama
Hata ayıklayıcı bir görevi bir ajan üzerinde çalıştırır ve tümü düzenleyiciden olmak üzere, herhangi bir komuttan önce durdurmanıza, adım adım ilerlemenize ve değişkenlerine bakmanıza olanak tanır. Bir görevin neden beklediğiniz şeyi yapmadığını, yayınlamadan önce bulmak için kullanın.
Hata ayıklama çalıştırması başlatma
- Değişikliklerinizi kaydedin: bir hata ayıklama çalıştırması, diğer tüm çalıştırmalar gibi kaydedilmiş görevi kullanır.
- Çalıştırmanın durması gereken yerlere kesme noktaları koyun (isteğe bağlı, aşağıya bakın).
- Düzenleyici araç çubuğunda Debug düğmesine tıklayın.
- Pencerede Agent (veya Any available agent) seçin, görevin INPUTS alanlarını doldurun ve Stop at errors no catch handles (to look at the variables) seçeneğini kullanıp kullanmayacağınıza karar verin.
- Start debugging düğmesine tıklayın.
Hata ayıklama paneli düzenleyicinin altında açılır. Debug, Debug tasks yetkisi (varsayılan olarak Developer) gerektirir; yerel bir kopyada kaydedilmiş yerel kopyanızı, genel görünümde ise genel sürümü çalıştırır.
Not: Kesme noktası olmadan çalıştırma yalnızca ele alınmamış bir hatada (bu seçenek açıksa) veya Pause düğmesine bastığınızda durur.
Kesme noktaları
Bir kesme noktası, çalıştırmayı bir komut çalışmadan önce durdurur.
- Blok görünümü: bir bloğun sol kenarındaki noktaya tıklayın (fareyle üzerine geldiğinizde görünür), blokları seçip F9 tuşuna basın veya bloğun ⋯ menüsündeki Add breakpoint seçeneğini kullanın. Birden fazla blok seçiliyken F9 hepsine kesme noktası koyar veya hepsinden kaldırır.
- Kod görünümü: bir komutun satırında F9 tuşuna basın veya satır numaralarının solundaki kenar boşluğuna tıklayın.
Kesme noktası kırmızı bir noktayla işaretlenir. Else veya Catch gibi bölümlere kesme noktası konamaz; bunun yerine içindeki ilk komuta koyun. Kesme noktaları her görev için tarayıcınızda saklanır ve bir hata ayıklama çalıştırması sürerken bunları ekleyip kaldırabilirsiniz: çalıştırma yeni kümeyi hemen kullanır.
Hata ayıklama paneli
| Bölüm | Gösterdikleri |
|---|---|
| DEBUG araç çubuğu | Denetimler, durum ve geçen süre |
| Durum | Starting on the agent…, Running on … veya Stopped before line 12 · Capture ile birlikte bir etiket (Breakpoint, Step, Paused, Error) |
| VARIABLES | Çalıştırmanın durduğu andaki görevin tüm değişkenleri |
| LOG | Çalıştırmanın canlı günlüğü; her girdinin satır numarasıyla |
Çalıştırma durduğunda düzenleyici, durduğu komutu seçer ve görünür hale getirir. Blok görünümünde blok Stopped here (hata durumunda Failed here) ile vurgulanır; kod görünümünde satır vurgulanır.
Denetimler
| Denetim | Tuş | Yaptığı |
|---|---|---|
| Continue | F5 | Bir sonraki kesme noktasına, hataya veya duraklatmaya kadar çalıştırır |
| Pause | F6 | Bir sonraki komuttan önce durdurur (çalışırken) |
| Step over | F10 | Geçerli komutu çalıştırır ve aynı düzeydeki bir sonraki komutta durur; bir blok (If, Loop, Try, Step) tek adım olarak çalışır (adım atla) |
| Step into | F11 | Bloklara girerek hemen sonraki komutta durur (içine gir) |
| Step out | Shift+F11 | Geçerli bloğun sonuna kadar çalıştırır ve ondan sonraki komutta durur (dışına çık) |
| Stop | Shift+F5 | Çalıştırmayı iptal eder |
Tuşlar, kod görünümü de dahil olmak üzere düzenleyici sayfasının her yerinde çalışır.
Not:
runtaskile çağrılan bir görev tek adım olarak çalışır: içine giremezsiniz. Çağrılan görevde, aynı girdileri vererek ayrıca hata ayıklayın.
Değişkenler
VARIABLES bölmesi her değişkeni bir ağaç olarak gösterir: öğelerini ve alanlarını görmek için listeleri, kayıtları ve veri tablolarını açın. Değerler ajanın tuttuğu şekliyle gösterilir:
- kimlik bilgisi değişkenlerinden gelen parolalar
***olarak maskelenir; - uzun metinler 2.000 karakterden, listeler ve kayıtlar ise 200 girdiden sonra kesilir;
- tarayıcı sayfaları, oturumlar ve diğer çalışma zamanı nesneleri metin olarak gösterilir.
Değişkenler, çalıştırma her durduğunda yenilenir.
Hatalarda durma
Stop at errors no catch handles açıkken (varsayılan), herhangi bir catch bölümü dışında başarısız olan bir komut çalıştırmayı hemen sonlandırmaz. Çalıştırma, başarısız komutta Error etiketi ve mesajı içeren bir başlık ile durur: değişkenlere bakın, ardından çalıştırmanın başarısız olmasına izin vermek için Continue veya Stop düğmesine basın.
catch içeren bir try bölümündeki hatalar ve loop --type:queue turundaki hatalar çalıştırmayı durdurmaz; her zamanki gibi ele alınırlar. Hata değişkenine (catch --error:err) orada bakmak için catch bölümüne bir kesme noktası koyun.
Run from here ve Debug from here
Bir bloğun ⋯ menüsünde Run from here ve Debug from here bulunur. Çalıştırma o komuttan başlar ve tanımlar dışında üstündeki komutları atlar: input, output ve --type içeren set yine de çalışır, böylece değişkenler oluşur.
- Yalnızca görevin ana düzeyindeki komutlar, bir Step içindeki komutlar da dahil olmak üzere başlangıç noktası olabilir (bir adım ilk komutundan başlar). If, Loop veya Try içindeki komutlar başlangıç noktası olamaz; çünkü koşulları, döngüleri veya hata yönetimleri atlanmış olurdu.
- Atlanan komutlar çalışmaz; bu nedenle onların dolduracağı değişkenler tanımlanan başlangıç değerlerini korur. Anlamlı bir başlangıç değeri verin veya biraz daha erken başlayın.
- Günlükteki ve hata ayıklayıcıdaki satır numaraları düzenleyicidekilerle aynı kalır.
İpucu: Debug from here uzun görevler için kullanışlıdır: tüm giriş ve gezinme işlemlerini her seferinde çalıştırmadan bir görevin sonunu test edin.
Run to here ve Run this block now
Bir adımı doğru kurmanın en hızlı yolu, onu robotun gerçekten bulunduğu yerde denemektir: açtığı tarayıcıda, o andaki değişkenleriyle.
- Üzerinde çalıştığınız bloğu seçin ve ⋯ menüsünden Run to here'ı seçin (ya da Ctrl+F10). Görev hata ayıklayıcıda başlar ve o bloğun önünde durur. If, Loop ve Try içindekiler dahil her yerdeki bloklar için çalışır. Bu durak yalnızca bu çalıştırma içindir; arkasında kesme noktası bırakmaz.
- Çalıştırma dururken bir veya daha fazla blok seçin ve Run this block now'ı seçin (Ctrl+Shift+Enter ya da hata ayıklama panelindeki Run selected now). Bloklar, durmuş çalıştırmada; onun açık tarayıcıları, pencereleri ve değişkenleriyle, tam olarak düzenleyicide şu anki halleriyle (kaydedilmiş ya da kaydedilmemiş) çalışır. Paneldeki değişkenler sonucu gösterir.
- Seçici ya da değer yanlış mı? Bloğu değiştirin ve yeniden çalıştırın. Çalıştırma durduğu yerde kalır; hiçbir şeyin baştan başlaması gerekmez.
- Blok çalıştığında Save ve Continue (F5) ya da Stop.
Notlar:
- Bloklar, çalıştırmanın durduğu yere eklenmiş gibi art arda çalışır; durmuş çalıştırmanın kendi sıradaki komutu henüz çalışmamıştır.
- Bu bloklardaki bir hata bir mesaj olarak ve günlükte gösterilir; çalıştırmayı başarısız yapmaz. İçlerindeki kesme noktaları durdurmaz.
- Yalnızca seçili bloklar (içerikleriyle) çalışır, çevrelerindeki bloklar çalışmaz.
Robotu izleme
Herhangi bir çalıştırma sırasında ajan makinesine bakan kişi hangi adımın çalıştığını görür (masaüstü olmayan Windows hizmeti hiçbir şey göstermez):
- İlerleme paneli: Botream Agent tepsi uygulaması sağ altta görevi, geçerli komutu ve satırı, geçen süreyi ve duraklatma ile durdurma düğmelerini içeren küçük bir panel gösterir. Klavye odağını asla almaz.
- Web sayfaları: görünür bir tarayıcıda, her tıklama, yazma veya başka bir element eyleminden önce bir işaretçi elemente doğru kayar ve eylemin adını ("Click", "Type"…) içeren turuncu bir çerçeve yaklaşık bir saniye boyunca elementi çevreler.
- Masaüstü programları: her element eyleminden önce gerçek fare işaretçisi elemente atlar ve turuncu bir çerçeve kısa bir süre elementi çevreler;
sendkeysklavye odağına sahip elementi çerçeve içine alır,mouseise kullandığı her konumu işaretler.
Bir görevi ajan makinesinde komut komut takip etmek için bunu kesme noktaları ve Step over ile birleştirin.
Diğer inceleme yolları
- Normal bir çalıştırmanın canlı günlüğünü çalıştırma sayfasında izleyin; bkz. İzleme.
- Başarısız bir çalıştırma başarısız olan satırı, bir ekran görüntüsünü ve değişkenleri saklar; Analyze with AI bunu açıklayabilir; bkz. Hata yönetimi ve yeniden denemeler.
log --level:debug, siz test ederken günlüğe ek ayrıntı yazar. Bir yönetici Ayarlar içinde Keep debug log lines seçeneğini kapatmadıkça hata ayıklama satırları saklanır.
log --message:"Response body: $response.Body$" --level:debug