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êtrex2, 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.
