Apple

Comment régler la taille du viewport d’un navigateur avec AppleScript

Vous avez besoin de définir précisément les dimensions du viewport de votre navigateur pour des tests, des captures d’écran ou du développement web ? AppleScript vous permet d’automatiser cette tâche sur macOS.

Qu’est-ce que le viewport ?

Le viewport est la zone d’affichage visible d’une page web dans votre navigateur, excluant les barres d’outils, les onglets et autres éléments de l’interface.

Solution pour Safari

Voici un script AppleScript qui configure le viewport de Safari à des dimensions précises :

tell application "Safari"
    activate
    
    -- Définir les dimensions souhaitées du viewport
    set viewportWidth to 1920
    set viewportHeight to 1080
    
    -- Calculer la taille de la fenêtre (viewport + barres)
    -- Safari a environ 71px de hauteur pour les barres
    set windowWidth to viewportWidth
    set windowHeight to viewportHeight + 71
    
    -- Appliquer les dimensions à la première fenêtre
    set bounds of window 1 to {0, 0, windowWidth, windowHeight}
end tell

Solution pour Google Chrome

Pour Chrome, la logique est identique mais les dimensions des barres diffèrent :

tell application "Google Chrome"
    activate
    
    set viewportWidth to 1920
    set viewportHeight to 1080
    
    -- Chrome a environ 120px de hauteur pour les barres
    set windowWidth to viewportWidth
    set windowHeight to viewportHeight + 120
    
    set bounds of window 1 to {0, 0, windowWidth, windowHeight}
end tell

Comprendre le script

La propriété bounds

Le format {x1, y1, x2, y2} définit :

  • x1, y1 : coordonnées du coin supérieur gauche de la fenêtre
  • x2, y2 : coordonnées du coin inférieur droit de la fenêtre

Dans nos exemples, {0, 0, windowWidth, windowHeight} positionne la fenêtre dans le coin supérieur gauche de l’écran.

Les décalages de hauteur

Les valeurs ajoutées à la hauteur (71px pour Safari, 120px pour Chrome) compensent l’espace occupé par :

  • La barre de titre
  • Les onglets
  • La barre d’outils
  • La barre de favoris (si affichée)

Points d’attention

Ces valeurs de décalage peuvent varier selon :

  • La version du navigateur : les mises à jour peuvent modifier l’interface
  • La barre de favoris : si elle est visible ou masquée
  • Les extensions : certaines ajoutent des barres d’outils
  • La résolution d’écran : sur les écrans Retina, les calculs peuvent différer

Trouver la valeur exacte pour votre configuration

Pour déterminer le décalage précis sur votre système, utilisez ce script de test :

tell application "Safari"
    activate
    delay 1
    set viewportHeight to do JavaScript "window.innerHeight" in document 1
    set windowHeight to (item 4 of (get bounds of window 1)) - (item 2 of (get bounds of window 1))
    set offset to windowHeight - viewportHeight
    display dialog "Le décalage est de " & offset & " pixels"
end tell

Cas d’usage pratiques

Cette technique est particulièrement utile pour :

  • Tests responsive : vérifier l’affichage à différentes résolutions
  • Captures d’écran : obtenir des dimensions exactes et reproductibles
  • Développement web : tester des breakpoints CSS spécifiques
  • Automatisation : intégrer dans des workflows de test

Script universel

Vous pouvez également créer un script qui détecte automatiquement le navigateur actif :

-- Remplacez "Safari" par le navigateur de votre choix
set browserName to "Safari"
set viewportWidth to 1920
set viewportHeight to 1080

if browserName is "Safari" then
    set offset to 71
else if browserName is "Google Chrome" then
    set offset to 120
end if

tell application browserName
    activate
    set bounds of window 1 to {0, 0, viewportWidth, viewportWidth + offset}
end tell

Conclusion

AppleScript offre une solution simple et efficace pour contrôler précisément les dimensions du viewport de vos navigateurs. N’hésitez pas à ajuster les valeurs de décalage selon votre configuration spécifique pour obtenir des résultats parfaitement précis.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *