5

私の目標は、要素がページ上にあるかどうかを判断し、存在する場合はその要素に対してアクションを実行することです。

このコードでは、要素に対してアクションを実行しようとする 2 番目の部分のみを示しています。

私のコードは次のとおりです。

tell application "Safari" 
    open location "http://www.apple.com" 
    tell front document 
        do JavaScript "document.getElementById(\"gn-store\").click()" 
    end tell 
end tell 

ただし、このコードと私が試した同様のことから、常に「欠損値」の結果が得られます (getElementById( から値を返すために Js で関数を呼び出すことを含む)。

私が間違っていることを理解していません。私は何時間もそれに取り組んできました。(そして記録のために、私はアップルスクリプト初心者です)。

4

3 に答える 3

3

Chrome は AppleScript 経由で Javascript によく反応することがわかりました...

tell application "Google Chrome"
    if not (exists window 1) then reopen
    activate
    tell window 1 to tell active tab
        set its URL to "http://www.apple.com/"
        delay 3
        execute javascript "document.getElementById('gn-store').childNodes[0].click()"
    end tell
end tell
于 2013-09-26T03:18:08.407 に答える
0

要素が存在する前に要素を取得しようとしている可能性があります (ページの読み込みが開始されたばかりです)。これを試して:

do JavaScript "window.onload=function(){document.getElementById(\"gn-store\").click()}" 
于 2013-09-26T02:29:09.950 に答える