2017-02-13 4 views
0

Я хочу создать applescript.Applescript - перезагрузите веб-страницу, пока HTML не содержит определенный текст

Мне нужно автоматически перезагрузить текущую веб-страницу в Chrome (или Safari), пока в HTML не появится определенное ключевое слово. После того, как он найдет это ключевое слово, прекратите перезагрузку.

Веб-страница имеет зону с рекламой. И мне нужно перезагрузить страницу, пока я вижу определенную рекламу. Это означает, что ключевое слово adPraha находится в HTML.

Не могли бы вы помочь мне, пожалуйста?

set keyword to "adPraha" 
tell application "Safari" 
    -- get the current window 
    set myWindow to (get current tab of window 1) 

    repeat 
     do JavaScript "window.location.reload()" in myWindow 


     -- wait for the page to load   
     repeat until ((do JavaScript "document.readyState;" in myWindow) is equal to "complete") 
      delay 0.5 
     end repeat 

     set pageContent to text of myWindow 

     if pageContent contains keyword then 

     else 

     end if 

     delay 2 -- wait a bit before running again 

    end repeat 
end tell 
+0

Что на самом деле не так с этим скриптом? Мне кажется, это работает. Я добавил диалоговое окно отображения между 'if/else', а другое между' else/end if', и скрипт был успешно обнаружен, когда 'pageContent' содержит' keyword'. Вы ищете команду 'exit repeat'? Поместите его между «else/endif» или замените «contains keyword» на «не содержит ключевое слово», и он выйдет из повтора при потере ключевого слова. –

ответ

0

Этот скрипт даст вам знать с диалоговым окном, что страница обнаружила ключевое слово. Он работает только с Safari. Google Chrome выполняет JavaScript по-разному:

tell application "Safari" 

    set keyword to "adPraha" 
    repeat 
     set myWindow to current tab of first window 
     activate 

     do JavaScript "window.location.reload()" in myWindow 

     repeat while (do JavaScript "document.readyState" in document 1) is not "complete" 
      delay 0.5 
     end repeat 

     set pageContent to do JavaScript ("window.document.documentElement.outerHTML") in myWindow 

     if pageContent contains keyword then 
      display dialog "found it" 
      exit repeat 
     end if 
     delay 2 -- wait a bit before running again 
    end repeat 
end tell 

Это работает для вас?

+0

Большое спасибо! Эта работа со словами в Интернете. Но я хотел бы найти ключевое слово в исходном коде HTML. Некоторые теги или некоторые значения HTML в Интернете. Можно ли его искать? Я нашел некоторый скрипт для синтаксического анализа HTML, но он не может этого сделать. –

+0

Скрипт уже ищет исходный код HTML. :) –

Смежные вопросы