Ich habe eine AppleScript .scpt-Datei, die über die Drittanbieteranwendung FastScripts einer Tastenkombination zugewiesen wird.
Das Skript öffnet eine bestimmte, festgelegte URL in einem neuen Google Chrome-Tab. Dieser neue Tab wird unmittelbar nach dem aktuell geöffneten Google Chrome-Tab eingefügt (sofern Google Chrome aktuell geöffnet ist).
Hier ist dieser Code:
activate application "Google Chrome"
set myURL to "https://weather.com/weather/hourbyhour/l/12345"
tell application "Google Chrome"
activate
tell front window to make new tab at after (get active tab) with properties {URL:myURL}
end tell
Eine zusätzliche Operation, die ich in diesem Skript implementieren möchte, besteht darin, die Bildlaufleiste der in Chrome geöffneten Webseite automatisch etwas nach unten zu verschieben. Genau wie die URL-Variable ist der Bildlaufbetrag spezifisch, fest und vorbestimmt.
Ich weiß nicht, wie ich Ihnen einen Bildlaufbetrag schriftlich mitteilen kann (und dieser hängt natürlich von der Bildschirmauflösung, der Bildschirmgröße, der Fenstergröße und der Zoomeinstellung ab, die in Chrome für die jeweilige Seite festgelegt wurde), aber ich kann sagen, dass es für meine einzigartige Umgebung rund 15% auf der Seite ist. Um die Bedeutung dieser Beschreibung zu verdeutlichen, befindet sich "100% nach unten" an der niedrigsten Bildlaufleistenposition (die Bildlaufleiste kann durch Drücken von ⌘ command + auf diese Position eingestellt werden ↓).
Die genaue Menge an Bildlauf, die ich wünsche, ist im Zusammenhang mit meiner Frage wahrscheinlich nicht besonders relevant (unter Berücksichtigung der vielen oben genannten Variablen, die die Menge an Bildlauf beeinflussen können). Es ist einfach wichtig zu beachten, dass der Bildlaufbetrag eine benutzerdefinierte Zahl ist, anstatt sich ganz oben oder ganz unten auf der Seite zu befinden (da man die entsprechende Tastenkombination key code
in AppleScript verwenden kann, um einfach zu diesen beiden Stellen zu scrollen). .
Ich hoffe, dass jede vorgeschlagene Lösung mir die Möglichkeit bietet, die gewünschte Position der Bildlaufleiste zu optimieren und anzupassen, damit ich sie so nah wie möglich an die Stelle bringen kann, an der ich manuell scrollen würde.
quelle
tell application "Finder" to get bounds of window of desktop
undtell application "Google Chrome" to get bounds of front window
wenn die Ziel - URL ist die Frontscheibe.Antworten:
Sie können das JavaScript verwenden , um den Bildlaufbetrag festzulegen.
So passen Sie den Bildlauf mit einem definierten Prozentsatz an:
Um den vertikalen Bildlauf am oberen
document.getElementById('twc-scrollabe')
Rand eines Elements auf der Seite anzupassen, kann das Skript das Element abrufen, wobei twc-scrollabe der Bezeichner der Tabelle ist.Danach verwendet das JavaScript eine Schleife, um den Anfang der Tabelle auf der Seite zu erhalten
Das Problem mit diesem JavaScript (auf einer anderen URL) ist, dass Sie den Bezeichner in der Quelle der Seite finden und im Skript ändern müssen. Wenn das Element keinen Bezeichner hat, müssen Sie andere Methoden verwenden, um das Element, das JavasScript, abzurufen Der Code hängt von der Seite der Site ab.
quelle
Auf der Grundlage der zusätzlichen Informationen , die Sie in den Kommentaren versehen, lassen Sie mich das folgende Beispiel bieten Code , wie ich es tun würde. (Zumindest bis ich einen besseren Weg gelernt habe.)
Anmerkungen:
Der Wert des
delay
Befehls in derrepeat while ...
Schleife kann je nach der Geschwindigkeit, mit der die Seite tatsächlich geladen wird, mehr oder weniger angepasst werden. Sie möchten die Häufigkeit minimieren, mit der das Ereignis ausgelöst wird, damit Sie es nicht unnötig überschreiten Löse das Ereignis aus . Es ist notwendig , dass die Seite geladen ist, andernfalls wird die nächsterepeat
Schleife nicht bewegen Sie die entsprechende Menge. (Ich verwende den Begriff Scroll offensichtlich im übertragenen Sinne.)In der
tell application "System Events"
Anweisung / im Block müssen Sie möglicherweise die Anzahl der Auslösungen derrepeat
Schleife anpassen . Derdelay
Befehl in dieserrepeat
Schleife ist erforderlich, da daskey code
Ereignis in diesem Anwendungsfall nicht ordnungsgemäß auf der Seite registriert wird.quelle
delay 1
, also nahm ich fälschlicherweise an, dass meine Methode schlecht war. Wenn ich Ihrendelay 1
auf änderedelay 3
, funktioniert der Code jetzt ordnungsgemäß auf meinem Computer. Ihre Lösung erfüllt meine Wünsche, aber ich bin sehr überrascht, dass AppleScript keine elegantere Bildlaufmethode bietet.