2017-02-13 57 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

這個腳本究竟有什麼問題?它似乎對我有用。我在'else/end if'之間添加了'if/else'和另一個之間的顯示對話框,並且當'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源代碼中搜索關鍵字。 Web中的一些標籤或HTML的一些值。是可以搜索它嗎?我已經找到了解析HTML的一些腳本,但它不能這樣做。 –

+0

該腳本已經在搜索HTML源代碼。 :) –