2016-11-08 73 views
2

我這裏有這個腳本加載未聚焦的Safari瀏覽器選項卡上的配置文件和保存我想要的文字在一個變量AppleScript的Safari瀏覽器:點擊按鈕後,頁面完全加載

tell application "Safari" to set the URL of tab 2 of window 1 to "https://URLproduct/" & serialNumber & "/definition" 
    delay 2.5 

但是一些數據是隻有在點擊一個按鈕後纔可用(這是一個彈出式的按鈕疊加,這使得另一個文本無法訪問,直到您按下「確定」,此按鈕並不總是在這裏)

button HTML是:

<button class="btn btn-primary" autofocus="" ng-click="ok()" tabindex="0">OK</button> 

,我按這個腳本:

do JavaScript "document.getElementsByClassName('btn btn-primary')[1].click();" in tab 2 of window 1 

古怪有時不工作的某個時候,我不能加太多延遲

我可以添加一個腳本,它會等待這個按鈕(「BTN BTN -primary')已經可用(完全加載),然後再次嘗試通過我的第一個腳本獲取文本?

- 也許我可以添加類似

tell application "Safari" 


    tell document 1 
     repeat until ("btn btn-primary" is in its source) 
      delay 0.5 
     end repeat 
    end tell 
end tell 

然後點擊腳本?

回答

1

是的,您可以在頁面加載後開始執行腳本。這確保按鈕是可點擊的(以防出現)。

將這個代碼到您的腳本:

tell application "Safari" 
     repeat until (do JavaScript "document.readyState" in document 1) is "complete" 
     end repeat 
    end tell 

快樂的腳本!