そのため、クラス名をセレクタとして使用してHTML要素をクリックするためのJavaScriptメソッドはすでに知っています。
document.getElementsByClassName('classnamehere')[0].click();
どこで [0] 要素の配列の最初の項目を表します。すべての要素が同じクラス名を共有します。多くの場合、要素の要素を試して使用する方が賢明です(少なくとも私の考えでは) idこれは、要素を選択するための一意の属性を提供します。
document.getElementById('idnamehere').click();
このコードをから実行するには グーグルクローム AppleScriptでは、一般的な形式は次のようになります。
set js to "document.getElementsByClassName('classnamehere')[0].click();"
tell application "Google Chrome" to tell ¬
the front window to tell ¬
the active tab to ¬
set jsResult to execute javascript js
についての重要な機能 execute javascript それは特定のものに向けられなければならないということです。 tab に グーグルクローム 。にコマンドを送信することはできません window または application オブジェクトそう:
tell application "Google Chrome" to ¬
execute javascript js
エラーをスローします js )
構文は次の形式も取ります。
tell application "Google Chrome" to tell front window to ¬
set jsResult to execute of tab 1 javascript js
またはこのフォーム:
tell application "Google Chrome" to tell front window to ¬
(execute javascript js) in front tab
これらの各コマンドでは、 javascript 実行するように指示されている tab。
まだ何も指定していません 「詳細」 を参照し、あなたがそうするとき、私はそれに応じてこの答えを更新することができます。それがどちらかであるという仮定に取り組む class 名前または id HTML要素の場合は、一番上にある式の1つを使用して、それを私が与えたコード例に直接プラグインできます。それで、あなたはJavaScriptメソッドを使うかもしれません getElementsByClassNameこれは次の形式を取ります。
document.getElementsByClassName('detailed')[0].click();
どこで [0] に変更される可能性があります [1]、 [2]他にいくつの要素がこのクラス名を持っているかによって異なります。それから私がすることは私のAppleScript変数を定義することです js 私のためにJavaScriptコマンドを保持するために:
set js to "document.getElementsByClassName('detailed')[0].click();"
それから教えて active tab に クロム 実行するには:
tell application "Google Chrome"
tell active tab of window 1 to ¬
execute javascript js
end tell
の execute たとえそれが単なる空の文字列であっても、commandは常に値を返します。したがって、必要に応じて、その値をAppleScriptの変数に代入して、後でスクリプトで使用することができます。
set jsResult to the result
もっと直接的には:
set jsResult to execute javascript js