Avec la sortie de Chrome 59, le mode " sans tête " est maintenant disponible dans les versions stables pour Linux et macOS (et bientôt aussi pour Windows avec Chrome 60). Cela nous permet d'exécuter une version complète de Chrome sans interface utilisateur visible, ce qui est très utile pour les tests automatisés. Voici quelques exemples.
chrome --headless --disable-gpu --dump-dom https://stackoverflow.com/
Dans mon programme de test JavaScript, j'aime enregistrer autant d'informations que possible sur le navigateur utilisé, afin d'aider à isoler les problèmes. Par exemple, j'enregistre plusieurs des propriétés de navigator
y compris les plugins de navigateur actuels :
JSON.stringify(Array.from(navigator.plugins).map(p => p.name))
["Chrome PDF Viewer","Widevine Content Decryption Module","Shockwave Flash","Native Client","Chrome PDF Viewer"]
Je crois savoir que Chrome debe se comportent de manière identique en mode sans tête, mais j'ai suffisamment d'expérience pour être sceptique à l'égard d'une nouvelle fonctionnalité qui pourrait modifier de manière significative le pipeline de rendu.
Pour l'instant, je vais effectuer des tests dans les deux modes. J'aimerais que le gestionnaire de tests enregistre si le mode sans tête est utilisé. Je pourrais transmettre cette information dans la configuration des tests, mais je préfère avoir une solution purement JavaScript que je peux intégrer dans l'exécuteur de tests lui-même. Cependant, je n'ai pas pu trouver d'interface de navigateur qui indique si le mode sans tête est actif.
Existe-t-il un moyen de détecter si Chrome fonctionne en mode sans tête à partir de JavaScript ?