Ist es möglich, den Button "detailliert" mit AppleScript (Google Chrome) anzuklicken?
for="7cd6f428-1are-41f2-9054-c452d7fe242-view-selector-e5f5de50-634a-45bc-bf30-98e2a64676cc">Detailliert
Ich würde dies normalerweise für einen Klick verwenden
"document.getElementsByName('clasenamehere')[0].click();"
aber in dieser Situation bin ich mir nicht sicher, wie ich weiter vorgehen soll
Update: Ich habe meine Antwort aktualisiert, da ich nicht bemerkt habe, dass der Code vom askdifferent Texteditor ausgeblendet wurde
das was ich normalerweise verwende:
tell application "Google Chrome"
tell tab 4 of window 1 to set myClickingbutton to execute javascript "document.getElementById('Clasenamehere').click();
"
end tell
Sie kennen also bereits die JavaScript-Methode zum Klicken auf ein HTML-Element mit seinem Klassennamen als Selektor:
document.getElementsByClassName('classnamehere')[0].click();
wobei [0]
das erste Element im Array von Elementen bezeichnet wird, die alle den gleichen Klassennamen haben. Oft ist es besser – zumindest meiner Meinung nach – zu versuchen, ein Element zu verwenden id
, das ein eindeutiges Attribut bereitstellt, mit dem ein Element ausgewählt werden kann:
document.getElementById('idnamehere').click();
Um diesen Code von Google Chrome über AppleScript auszuführen , sieht das allgemeine Formular so aus:
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
Das wichtige Merkmal ist, dass es an eine bestimmte in Google Chromeexecute javascript
geleitet werden muss . Sie können den Befehl nicht an ein oder das Objekt senden. So:tab
window
application
tell application "Google Chrome" to ¬
execute javascript js
wird einen Fehler auslösen (sogar unter der Annahme, dass Sie definiert hatten js
).
Die Syntax kann auch diese Form annehmen:
tell application "Google Chrome" to tell front window to ¬
set jsResult to execute of tab 1 javascript js
oder dieses Formular:
tell application "Google Chrome" to tell front window to ¬
(execute javascript js) in front tab
In jedem dieser Befehle javascript
wird der angewiesen, in einer bestimmten tab
.
Sie haben noch nicht angegeben, worauf sich "detailliert" bezieht, und wenn Sie dies tun, kann ich diese Antwort entsprechend aktualisieren. Unter der Annahme, dass es sich entweder um einen class
Namen oder id
um ein HTML-Element handelt, können Sie einen der Ausdrücke oben verwenden und ihn direkt in die Codebeispiele einfügen, die ich Ihnen gegeben habe. Sie könnten also die JavaScript-Methode verwenden getElementsByClassName
, die diese Form annehmen würde:
document.getElementsByClassName('detailed')[0].click();
where [0]
könnte am Ende in [1]
, [2]
, usw. geändert werden, je nachdem, wie viele andere Elemente diesen Klassennamen haben. Was ich dann tun würde, ist, meine AppleScript-Variable so zu definieren, js
dass sie den JavaScript-Befehl für mich enthält:
set js to "document.getElementsByClassName('detailed')[0].click();"
Sagen Sie dann active tab
in Chrome , dass es ausgeführt werden soll:
tell application "Google Chrome"
tell active tab of window 1 to ¬
execute javascript js
end tell
Der execute
Befehl gibt immer einen Wert zurück, auch wenn es nur ein leerer String ist. Wenn Sie möchten, können Sie diesen Wert daher einer Variablen in AppleScript zuweisen, um sie später in Ihrem Skript zu verwenden:
set jsResult to the result
Oder direkter:
set jsResult to execute javascript js
Laufwerk
Kevin
Benutzer3439894