Bir el yazısı neden bir "beni izle" kaydından sürükleyerek yarattıktan sonra başarıyı algılamıyor?


1

Amaç: Buradaki hedefim, ISS'imin kabul edeceği bağlantı hızı verilerini toplamaktır; böylece, bu yeni ISS'ye geçtikten hemen sonra yaşadığım 1-5 dakika süren bağlantı hızında dramatik düşüşler gösterebilirim (aynı ekipman - önceden olmadan) bu hız tutarsızlıkları). Kablolu bir bilgisayardan çalıştırıldıklarında hız testi web sitelerini kullanarak (yani Wifi üzerinden bağlanmayan) bağlantı hızı testi sonuçlarını yalnızca kabul eder (ve erişebilir).

Bu yüzden, genellikle işe yarayan küçük bir otomatikleştirici iş akışı yarattım ... bağlantı hızı düşmediği ve web sitesi yanıt vermediği sürece - bu da tüm hedefimi engelliyor!

Başlangıçta aşağıdaki başlangıç ​​eylemlerini bir watch-me-do'da kaydetmiştim:

  1. Bağlantı biriminde Safari'yi tıklayın
  2. Bir yer imleri klasörünü tıklayın
  3. Hız testi web sitesi için yer imini tıklayın.
  4. Hız testi başlat düğmesine tıklayın

genel olarak işe yarayan ve hataya dayanıklı sonuçların işlenmesini takip eder. Bununla birlikte, iş akışında ölümcül bir hataya neden olabilecek 2 şey olabilir:

  1. Web sayfası yüklenmiyor
  2. Web sayfası yükleniyor, ancak hız testi başlat düğmesi yüklenmiyor (sayfa başlangıçta düğmenin görüneceği yükleme grafiğini gösterir)

Ara sıra yapılan testin başarısız olması konusunda iyiyim. Sayfadaki metni çözümleyen bir kod var ve bu tür sonuçlar günlükte zaman damgalı bir sınama hatası olarak görünüyor.

Bununla birlikte, komut dosyası, düğmeyi tıklayamadığında ve tüm diğer sınama işlemleri durduğunda bir hata yayınlar; bu nedenle, düğme tıklatma eylemini bekle-beni-do'dan iş akışına sürüklemeye çalıştım, bu da düzenlenebilir bir el yazısı olur. on errorBlok içindeki hata çağrısını değiştirmek için betiği düzenleyebileceğimi düşündüm . Ortaya çıkan geçici çözüm eserlerin tür, ama şimdi başarıyla tıklandığında oluyor düğmesine düşünür ve sonunda zaman aşımı vurur, gider ASLA görünür on errorve ekledim hattını çalıştırır: exit repeat.

Peki burada neler oluyor? Neden komut dosyası, tıklama işleminin başarıyla gerçekleştirildiğini algılamıyor gibi görünüyor?

İşte beni bekle işleminden sürüklenen düğme tıklaması eyleminin kodu:

on run {input, parameters}
    -- Click the Start button.
    tell application "Safari" to activate  --I added this line
    delay 6.095782
    set timeoutSeconds to 2.0
    set uiScript to "click UI Element \"Start\" of group 1 of group 2 of UI Element 1 of scroll area 1 of group 1 of group 1 of tab group 1 of splitter group 1 of window \"Speed Test\" of application process \"Safari\""
    my doWithTimeout(uiScript, timeoutSeconds)
    return input
end run

on doWithTimeout(uiScript, timeoutSeconds)
    set endDate to (current date) + timeoutSeconds
    repeat
        try
            run script "tell application \"System Events\"
" & uiScript & "
end tell"
            exit repeat
        on error errorMessage
            if ((current date) > endDate) then
                exit repeat  --I replaced an error call here
            end if
        end try
    end repeat
end doWithTimeout
  • ISS detaylarını değiştirdim (aşağıdaki yorumlara bakınız).

TLDR. Hız testi için web sitesi URL’si nedir?
CJK

1
ISS'yi 2 nedenden dolayı açığa vurmak istemedim. 1. Web sayfalarının kodlanmasını önlemek için çaba harcadılar, bu yüzden bu yazıyı bulmalarını ve senaryomu engellemeye çalışmalarını istemedim. 2. Test sonuçlarımla göstermeden önce, bu ISS'yi genel olarak kötü tutarlılık için kötü hizaya sokmak istemedim. Desteklenen yönlendiricilerinden birini kullanmıyorum, bu nedenle sorunun uyumsuzluğa bağlı olması olası. Bu yüzden sorum, teste başlamak için kendi düğmesine basmak yerine bir yer işaretini tıklamak.
hepcat72

Ve soru uzunluğu için üzgünüm. Öznellik benim güçlü takımlarımdan biri değil.
hepcat72

Sadece Safari'deki yer işaretini tıklamak mı istiyorsunuz ?
CJK

1
Belki de davranış benzer görünüyor, ancak çözümler farklı. Birincisi, sizi web sayfasına götürmek için Safari yer imini tıklamanız gerekmez . AppleScript, Safari'yi doğrudan kontrol ederek sizi oraya götürebilir . Size nasıl yapılacağını göstersem bu yararlı olur mu?
CJK
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.