(J'ai débattu entre la publication de ceci ici, ServerFault et StackOverFlow. Réglé pour cela. J'espère que c'est au bon endroit.)
Nous exécutons notre suite de tests d'interface utilisateur à l'aide de Selenium Grid 2 avec une machine Windows Amazon EC2 (qui est démarrée à l'aide des API CloudFormation d'Amazon). Ma question est, comment puis-je changer la résolution de cette machine?
Si je m'y connecte à distance, je peux spécifier la résolution à l'aide du Bureau à distance. Mais évidemment, cela ne change pas définitivement la résolution. Lorsque nous exécutons nos tests, la résolution est si petite que le navigateur scrute les éléments ensemble et entraîne l'échec des tests.
Des idées? Y a-t-il quelque chose que je peux mettre dans la recette CloudFormation? Puis-je faire quelque chose sur l'image avant de créer l'AMI?
Merci.
mstsc.exe /console
Réponses:
Avertissement: TightVNC n'est pas sécurisé, donc si la sécurité est un problème, vous devrez peut-être trouver une approche différente. L'ensemble du processus ne prendra que quelques minutes, de sorte que le trou de sécurité est petit, mais néanmoins.
la source
Vous pouvez changer la résolution d'écran en modifiant deux valeurs de registre. Ces deux valeurs sont:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolution
Où GUID est un GUID généré de façon aléatoire.Vous pouvez en fait spécifier n'importe quelle valeur XResolution et YResolution tant qu'elles sont hexadécimales.
Remarque: dans le cas d'un moniteur CRT, une résolution absurde peut endommager votre moniteur. Dans le cas d'un moniteur LCD, votre moniteur peut ne plus afficher d'interface utilisateur. Un bon moyen de modifier la résolution de votre écran consiste à noter la quantité de pixels dont vous souhaitez remplir la largeur de l'écran (c'est la résolution X) et la quantité de pixels que vous souhaitez sur la hauteur de votre écran (la résolution Y). La calculatrice Windows (non disponible dans Server Core, vous devrez trouver un autre ordinateur ou une calculatrice avancée matérielle) offre un moyen facile de convertir des nombres décimaux en nombres hexadécimaux. Vous pouvez ensuite utiliser ces valeurs pour modifier les valeurs de registre correspondantes. Un redémarrage fera de votre résolution d'écran préférée une réalité.
La profondeur de couleur utilisée sur votre moniteur est capturée dans la valeur de registre suivante:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPel
Sur ma boîte, cette valeur hexadécimale a été définie sur 0x00000008 (8), ce qui signifie que mon écran a utilisé une profondeur de couleur de 8 bits. (256 couleurs) Le changer en 16 bits (0x00000010) affichera 65536 couleurs (Couleurs élevées). Les autres valeurs généralement disponibles sont 24 bits (0x00000018) et 32 bits (0x00000020).La source
la source
J'ai pu faire fonctionner cela en utilisant une combinaison de la réponse de @ kenny-trytek ci-dessus et en configurant la connexion automatique.
Je pense que la résolution VNC n'est définie que pour l'utilisateur actuel, donc la configuration de la connexion automatique garantit que cet utilisateur a une session ouverte.
Configuration de la connexion automatique https://support.microsoft.com/en-us/kb/324737
Ensuite, dans le dossier de démarrage des utilisateurs, fournissez un fichier de raccourci ou de chauve-souris pour lancer le processus de nœud de sélénium.
la source
J'ai tout essayé par dessus et j'ai échoué. J'ai trouvé une solution unique pour ma situation qui était simple .. utilisez windows power-shell.
écrit un script Power-Shell
nommez-le resolution.ps1
enregistré dans C: \ myTestFolder
et l'exécuter à partir de la ligne de commande comme ci-dessous ..... (mes scripts sont pilotés par des fichiers batch)
la source
Voici comment définir la résolution d'écran sans tête sur AWS Windows à l'aide de RDP:
Notez que la connexion automatique nécessite un nom d'utilisateur et un mot de passe et que le mot de passe est stocké non chiffré sous le registre Windows HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon.
Testé sur Amazon Windows Server 2012 R2 AMI.
Voici un livre de recettes de chef qui fait ce qui précède: https://github.com/dhoer/chef-windows_screenresolution
la source