1 votes

Défilement vers le bas - modifier la position de la barre de défilement à l'aide d'AppleScript (combiné à un autre script).

Un type génial m'a donc aidé ( Automator : Applescript - Ouvrez un profil Google Chrome spécifique et utilisez l'extension ). Maintenant, je veux mettre en œuvre l'étape suivante.

Je peux maintenant exécuter un profil Chrome spécifique et utiliser une fonction d'extension spécifique qui ouvre essentiellement une configuration Chrome que j'ai enregistrée (divers sites Web s'ouvrant avec des dimensions spécifiques sur mes moniteurs et avec des placements spécifiques).

C'est le script :

set chrome to "\"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\""
do shell script chrome & " --profile-directory=\"Profile 6\"" & " > /dev/null 2>&1 &"

tell application "Google Chrome" to activate
delay 0.25
tell application "System Events"
    click ¬
        pop up button "Multi Layout Manager" of ¬
        toolbar 1 of group 1 of window 1 of ¬
        application process "Chrome"
    delay 0.25
    repeat 3 times
        key code 48 -- # tab key
        delay 0.2
    end repeat
    key code 36 -- # enter key
end tell

Ce que je veux maintenant, c'est que certains de ces sites modifient leurs barres de défilement afin que je puisse voir la partie du site qui m'intéresse en face de moi.

J'ai trouvé ce script qui fonctionne mais seulement par lui-même.

set myURL to "https://weather.com/weather/hourbyhour/l/12345"
set scrollAmount to "16" --- % down the page

tell application "Google Chrome"
    activate
    tell front window to set curTab to make new tab at after (get active tab) with properties {URL:myURL}
    tell curTab
        repeat while (loading)
            delay 1
        end repeat
        -- set the vertical scroll 
        execute javascript "h=document.documentElement.scrollHeight- 
    document.documentElement.clientHeight; window.scrollTo(0,h*" & scrollAmount & "/100)"
    end tell
end tell

J'ai essayé, mais mes connaissances sont limitées et je n'arrive pas à faire fonctionner les deux ensemble.

Dans sa forme simple, je veux que le script choisisse un des sites que le premier script ouvre et change sa barre de défilement.

Toute aide serait appréciée.

UPDATE

J'ai réussi à le faire fonctionner en utilisant ce script :

delay 3
tell application "Google Chrome" to tell active tab of window 1
    execute javascript "window.scroll(0,270)"
end tell

Le problème actuel est qu'il prend l'onglet actif et applique la fonction de défilement. Je veux qu'il trouve un autre onglet et l'applique.

L'onglet est cependant dans une fenêtre différente.

Un moyen de contourner le problème ?

0voto

user3589502 Points 21

Si vous souhaitez ouvrir une url Safari dans un nouvel onglet plutôt que dans une nouvelle fenêtre, vous pouvez procéder comme suit

tell application "Safari"
    tell window 1
        set current tab to (make new tab with properties {URL:"$1"})
    end tell
end tell

Si vous voulez passer à un onglet avec une url spécifique

    tell application "Safari"
    set desired_tab to null
    set tablist to every tab of window 1
    repeat with t in tablist
        if URL of t is "https://www.google.com/" then
            set desired_tab to t
        end if
    end repeat

    if desired_tab is not equal to null then
        set current tab of window 1 to desired_tab
    end if
end tell

Attention cependant, l'url doit être une correspondance exacte.

Obtenez-le dans la console javascript si vous en avez besoin avec

window.location.href

Cet exemple montre la sélection d'un [https://stackoverflow.com/questions/30242098/applescript-find-open-tab-in-safari-by-name-and-open-it] [safari tab by name in applescript]

0voto

Jason Marsell Points 81

La solution était assez simple. J'ai juste eu à mettre la fenêtre 2.

delay 3
tell application "Google Chrome" to tell active tab of window 2
    execute javascript "window.scroll(0,270)"
end tell

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X