BotreamDokümanlar Web sitesi English v0.1.1

Koşul komutları

if · switch

if If

Bir koşul doğru olduğunda içindeki komutları çalıştırır.

Blok komutu: if … endif; bölümleri: elseif, else.

Türler (--type, isteğe bağlı)

--type:expression

Serbest biçimli bir koşul ifadesi.

ParametreDeğerVarsayılanAçıklama
--condition zorunlukoşulör. $count$ > 5 and $status$ = "ok"
--type:string

Metin karşılaştırır.

ParametreDeğerVarsayılanAçıklama
--left zorunluherhangi bir değerSınanacak metin veya $variable$
--operator zorunluşunlardan biri: equals, notequals, contains, notcontains, startswith, endswith, matches, isempty, isnotempty
--rightherhangi bir değerKarşılaştırılacak değer (isempty/isnotempty tarafından kullanılmaz; matches için regex)
--ignorecasetrue / falsefalse
--type:number

Sayı karşılaştırır.

ParametreDeğerVarsayılanAçıklama
--left zorunlusayıTest edilecek sayı veya $variable$
--operator zorunluşunlardan biri: =, !=, >, <, >=, <=
--right zorunlusayıKarşılaştırılacak sayı veya $variable$
--type:boolean

Bir true/false değerini denetler.

ParametreDeğerVarsayılanAçıklama
--value zorunluherhangi bir değerKontrol edilecek doğru/yanlış $variable$, ör. $found$
--isşunlardan biri: true, falsetrueDeğer bu olduğunda koşul sağlanır
--type:fileexists

Dosya (veya joker karaktere uyan bir dosya) varsa doğrudur.

ParametreDeğerVarsayılanAçıklama
--path zorunlumetinDosya yolu; joker karakterlere izin verilir, ör. C:\Reports\*.xlsx (klasördeki uyan herhangi bir dosya) Ajan makinesindeki bir dosya.
--type:filenotexists

Uyan hiçbir dosya yoksa doğrudur.

ParametreDeğerVarsayılanAçıklama
--path zorunlumetinDosya yolu; joker karakterlere izin verilir, ör. C:\Reports\*.xlsx (klasördeki uyan herhangi bir dosya) Ajan makinesindeki bir dosya.
--type:folderexists

Klasör (veya uyan bir klasör) varsa doğrudur.

ParametreDeğerVarsayılanAçıklama
--path zorunlumetinKlasör yolu; joker karakterlere izin verilir, ör. C:\Projects\2026* (uyan herhangi bir alt klasör) Ajan makinesindeki bir klasör.
--type:foldernotexists

Uyan hiçbir klasör yoksa doğrudur.

ParametreDeğerVarsayılanAçıklama
--path zorunlumetinKlasör yolu; joker karakterlere izin verilir, ör. C:\Projects\2026* (uyan herhangi bir alt klasör) Ajan makinesindeki bir klasör.
--type:windowexists

Pencere açıksa doğrudur (isteğe bağlı olarak --timeout saniyeye kadar bekler).

ParametreDeğerVarsayılanAçıklama
--window zorunlu$değişken$window --action:open/attach ile alınan pencere veya bir set --type:window deseni
--timeoutsayı0Pencere için beklenecek saniye
--type:windownotexists

Pencere açık değilse doğrudur (isteğe bağlı olarak kapanması için --timeout saniyeye kadar bekler).

ParametreDeğerVarsayılanAçıklama
--window zorunlu$değişken$window --action:open/attach ile alınan pencere veya bir set --type:window deseni
--timeoutsayı0Pencerenin kapanması için beklenecek saniye
--type:elementexists

Web elementi sayfada görünüyorsa doğrudur (isteğe bağlı olarak görünmesi için --timeout saniyeye kadar bekler). Bulunamayan bir element yalnızca yanlış sayılır.

ParametreDeğerVarsayılanAçıklama
--browser$değişken$browser --action:open --output ile alınan tarayıcı (varsayılan: en son kullanılan sayfa)
--dompath zorunlumetinXPath veya CSS seçici
--framemetinElementin bulunduğu iframe'in seçicisi, ör. #payment; iç içe çerçeveler outer >> inner şeklinde. Boşsa sayfanın kendisi
--propertiesmetinYakalanan elementin nesne özellikleri. İşaretli her özellik eşleşmelidir; seçici bunlardan oluşturulur
--anchormetinYakında bulunan ve değişmeyen bir elementin (etiket, başlık) seçicisi; --dompath için birden çok eşleşme varsa ona en yakın olan kullanılır
--anchorpositionşunlardan biri: near, right, left, below, abovenearElementin çapaya göre konumu: o taraftaki en yakın eşleşme kullanılır
--fallbackmetinİlki hiçbir şey bulamadığında denenecek diğer seçiciler, " || " ile ayrılır. Özellikler tablosundaki alternatifler bunlardan sonra otomatik olarak denenir
--timeoutsayı0Karar vermeden önce elementin görünmesi için beklenecek saniye (0: hemen bir kez kontrol et)
--type:elementnotexists

Web elementi gizliyse veya sayfada yoksa doğrudur (isteğe bağlı olarak kaybolması için --timeout saniyeye kadar bekler).

ParametreDeğerVarsayılanAçıklama
--browser$değişken$browser --action:open --output ile alınan tarayıcı (varsayılan: en son kullanılan sayfa)
--dompath zorunlumetinXPath veya CSS seçici
--framemetinElementin bulunduğu iframe'in seçicisi, ör. #payment; iç içe çerçeveler outer >> inner şeklinde. Boşsa sayfanın kendisi
--propertiesmetinYakalanan elementin nesne özellikleri. İşaretli her özellik eşleşmelidir; seçici bunlardan oluşturulur
--anchormetinYakında bulunan ve değişmeyen bir elementin (etiket, başlık) seçicisi; --dompath için birden çok eşleşme varsa ona en yakın olan kullanılır
--anchorpositionşunlardan biri: near, right, left, below, abovenearElementin çapaya göre konumu: o taraftaki en yakın eşleşme kullanılır
--fallbackmetinİlki hiçbir şey bulamadığında denenecek diğer seçiciler, " || " ile ayrılır. Özellikler tablosundaki alternatifler bunlardan sonra otomatik olarak denenir
--timeoutsayı0Karar vermeden önce elementin kaybolması için beklenecek saniye (0: hemen bir kez kontrol et)
--type:desktopelementexists

Masaüstü elementi pencerede varsa doğrudur (isteğe bağlı olarak görünmesi için --timeout saniyeye kadar bekler). Bulunamayan bir element veya pencere yalnızca yanlış sayılır.

ParametreDeğerVarsayılanAçıklama
--window zorunlu$değişken$window --action:open/attach ile alınan pencere veya bir set --type:window deseni
--by zorunluşunlardan biri: automationid, name, classname, xpath, index
--target zorunlumetinTanımlayıcı değeri
--propertiesmetinYakalanan elementin nesne özellikleri. İşaretli her özellik eşleşmelidir; seçici bunlardan oluşturulur
--anchormetinYakında bulunan ve değişmeyen bir element, ör. name=Amount, automationid=lblTotal, classname=Static veya bir XPath; --target için birden çok eşleşme varsa ona en yakın olan kullanılır
--anchorpositionşunlardan biri: near, right, left, below, abovenearElementin çapaya göre konumu: o taraftaki en yakın eşleşme kullanılır
--fallbackmetinİlki hiçbir şey bulamadığında denenecek diğer seçiciler, " || " ile ayrılır. Özellikler tablosundaki alternatifler bunlardan sonra otomatik olarak denenir
--timeoutsayı0Karar vermeden önce elementin görünmesi için beklenecek saniye (0: hemen bir kez kontrol et)
--type:desktopelementnotexists

Masaüstü elementi pencerede yoksa doğrudur (isteğe bağlı olarak kaybolması için --timeout saniyeye kadar bekler).

ParametreDeğerVarsayılanAçıklama
--window zorunlu$değişken$window --action:open/attach ile alınan pencere veya bir set --type:window deseni
--by zorunluşunlardan biri: automationid, name, classname, xpath, index
--target zorunlumetinTanımlayıcı değeri
--propertiesmetinYakalanan elementin nesne özellikleri. İşaretli her özellik eşleşmelidir; seçici bunlardan oluşturulur
--anchormetinYakında bulunan ve değişmeyen bir element, ör. name=Amount, automationid=lblTotal, classname=Static veya bir XPath; --target için birden çok eşleşme varsa ona en yakın olan kullanılır
--anchorpositionşunlardan biri: near, right, left, below, abovenearElementin çapaya göre konumu: o taraftaki en yakın eşleşme kullanılır
--fallbackmetinİlki hiçbir şey bulamadığında denenecek diğer seçiciler, " || " ile ayrılır. Özellikler tablosundaki alternatifler bunlardan sonra otomatik olarak denenir
--timeoutsayı0Karar vermeden önce elementin kaybolması için beklenecek saniye (0: hemen bir kez kontrol et)
--type:imageexists

Resim ekranda veya pencerede varsa doğrudur (isteğe bağlı olarak görünmesi için --timeout saniyeye kadar bekler).

ParametreDeğerVarsayılanAçıklama
--image zorunlumetinAranacak resim: ekranda işaretleyin (Capture) veya ajan makinesindeki bir .png/.jpg/.bmp dosyası
--window$değişken$Yalnızca bu pencerede ara (önce öne getirilir); boşsa tüm ekran
--similaritysayı90Bir noktanın yüzde olarak ne kadar benzer olması gerektiği (50–100). Düşük değer biraz değişmiş resimleri de bulur (renkler, yumuşatma); yüksek değer benzerlerini önler
--timeoutsayı0Karar vermeden önce resmin görünmesi için beklenecek saniye (0: hemen bir kez kontrol et)
--type:imagenotexists

Resim ekranda yoksa doğrudur (isteğe bağlı olarak kaybolması için --timeout saniyeye kadar bekler).

ParametreDeğerVarsayılanAçıklama
--image zorunlumetinAranacak resim: ekranda işaretleyin (Capture) veya ajan makinesindeki bir .png/.jpg/.bmp dosyası
--window$değişken$Yalnızca bu pencerede ara (önce öne getirilir); boşsa tüm ekran
--similaritysayı90Bir noktanın yüzde olarak ne kadar benzer olması gerektiği (50–100). Düşük değer biraz değişmiş resimleri de bulur (renkler, yumuşatma); yüksek değer benzerlerini önler
--timeoutsayı0Karar vermeden önce resmin kaybolması için beklenecek saniye (0: hemen bir kez kontrol et)
--type olmadan (İfade)
ParametreDeğerVarsayılanAçıklama
--condition zorunlukoşulör. $count$ > 5 and $status$ = "ok"

Bölüm elseif

Parametre yok.

Bölüm else

Parametre yok.

Örnekler

if --condition:$status$="active"
    log --message:"Status is active"
elseif --condition:$status$="pending"
    log --message:"Status is pending"
else
    log --message:"Unknown status"
endif
if --type:elementexists --dompath:"//button[@id='save']" --timeout:5
    capture --action:click --dompath:"//button[@id='save']"
elseif --type:desktopelementexists --window:$erp$ --by:name --target:Save
    desktop --action:click --window:$erp$ --by:name --target:Save
elseif --type:imageexists --image:"C:\Pictures\save.png" --window:$citrix$
    image --action:click --image:"C:\Pictures\save.png" --window:$citrix$
endif
if --type:elementnotexists --browser:$web$ --dompath:".spinner" --timeout:30
    log --message:"The page is ready"
endif

switch Switch

Değeri switch değerine eşit olan ilk case bölümünün komutlarını çalıştırır (metin olarak karşılaştırılır; 1 ve 1.0 gibi sayılar eşittir); hiçbir case eşleşmezse default bölümünü çalıştırır.

Blok komutu: switch … endswitch; bölümleri: case, default.

Parametreler

ParametreDeğerVarsayılanAçıklama
--value zorunluherhangi bir değerCase değerlerinin karşılaştırıldığı değer, ör. $status$
--ignorecasetrue / falsefalsetrue: Approved, APPROVED ve approved aynı sayılır

Bölüm case

ParametreDeğerVarsayılanAçıklama
--value zorunluherhangi bir değerSwitch değeri buna eşit olduğunda bu bölümü çalıştırır, ör. Approved veya 1

Bölüm default

Parametre yok.

Örnekler

switch --value:$status$ --ignorecase:true
case --value:Approved
    log --message:"Book the invoice"
case --value:Rejected
    mail --to:$requester$ --subject:"Invoice rejected" --body:$reason$
case --value:1
    log --message:"Priority one"
default
    log --message:"Unknown status $status$" --level:warning
endswitch
Botream 0.1.1 · Oluşturulma 2026-10-14