Applescript: повторяйте, пока не появится reCaptcha

Я новичок в кодировании, особенно в AppleScript. Мне удалось заставить работать следующий код:

tell application "Safari"

    repeat
        delay 7.5
        set the URL of document 1 to "https://url.com"
        delay 2
        tell document 1
            do JavaScript "document.getElementById(\"id1\").click()"
            do JavaScript "document.getElementById(\"id2\").click()"
            do JavaScript "document.getElementById(\"id3\").click()"
            do JavaScript "document.getElementById(\"id4\").click()"
            do JavaScript "document.getElementById(\"id5\").click()"
            do JavaScript "document.getElementById(\"id6\").click()"
            delay 0.25
        end tell
        tell application "Safari"
            activate
        end tell

        tell application "System Events"
            delay 0.25
            tell process "Safari" to key code 48
            delay 0.5
            key code 21

        end tell

        delay 0.25

        tell application "Safari"

            tell document 1
                do JavaScript "document.getElementById(\"book\").click()"

            end tell
        end tell
    end repeat

end tell

Вместо того, чтобы повторять код все время, я хотел бы, чтобы код повторялся до тех пор, пока не появится Google reCaptcha, который появляется после последнего действия javascript.


person Rico Zimmermann    schedule 26.03.2016    source источник


Ответы (1)


Я бы порекомендовал изменить структуру вашего повторного заявления следующим образом...

set done to false
repeat while not done

    if reCaptcha = "something" then
        set done to true
    end if
end repeat
person ThrowBackDewd    schedule 26.03.2016
comment
Я до сих пор не знаю, что я должен вставить для чего-то - person Rico Zimmermann; 29.03.2016
comment
что-то, что вы тестируете. Вы пытаетесь проверить, изменилась ли капча? Я не совсем понимаю, что вы пытаетесь сделать. Я помогал только с repeat частью сценария. - person ThrowBackDewd; 29.03.2016