(Ich habe zwischen der Veröffentlichung hier, ServerFault und StackOverFlow diskutiert. Ich habe mich damit abgefunden. Hoffentlich ist es am richtigen Ort.)
Wir führen unsere UI-Testsuite mit Selenium Grid 2 auf einem Amazon EC2-Windows-Computer aus (der mit den CloudFormation-APIs von Amazon gestartet wird). Meine Frage ist, wie ändere ich die Auflösung dieser Maschine?
Wenn ich eine Remote-Verbindung herstelle, kann ich die Auflösung über Remotedesktop festlegen. Aber das ändert natürlich nichts an der Auflösung. Wenn wir unsere Tests ausführen, ist die Auflösung so gering, dass der Browser die Elemente zusammenfasst und die Tests fehlschlägt.
Irgendwelche Ideen? Kann ich etwas in das CloudFormation-Rezept aufnehmen? Kann ich vor dem Erstellen des AMI etwas mit dem Image tun?
Vielen Dank.
mstsc.exe /console
Antworten:
Haftungsausschluss: TightVNC ist nicht sicher. Wenn also Sicherheit ein Problem darstellt, müssen Sie möglicherweise einen anderen Ansatz finden. Der gesamte Vorgang dauert nur wenige Minuten, daher ist die Sicherheitslücke klein, aber dennoch vorhanden.
quelle
Sie können die Bildschirmauflösung ändern, indem Sie zwei Registrierungswerte ändern. Diese beiden Werte sind:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolution
Wobei GUID eine zufällig generierte GUID ist.Sie können tatsächlich einen beliebigen XResolution- und YResolution-Wert angeben, sofern diese hexadezimal sind.
Hinweis: Bei einem CRT-Monitor, der eine absurde Auflösung angibt, kann Ihr Monitor beschädigt werden. Bei einem LCD-Monitor zeigt Ihr Monitor möglicherweise keine Benutzeroberfläche mehr an. Eine gute Möglichkeit, die Bildschirmauflösung zu ändern, besteht darin, die Anzahl der Pixel, mit denen Sie Ihre Bildschirmbreite füllen möchten (dies ist die XResolution), und die Anzahl der Pixel, die Sie auf Ihrer Bildschirmhöhe (die YResolution) haben möchten, aufzuschreiben. Der Windows-Rechner (in Server Core nicht verfügbar, Sie müssen einen anderen Computer oder einen erweiterten Hardware-Rechner finden) bietet eine einfache Möglichkeit, Dezimalbeträge in Hexadezimalbeträge umzuwandeln. Mit diesen Werten können Sie dann die entsprechenden Registrierungswerte ändern. Durch einen Neustart wird Ihre bevorzugte Bildschirmauflösung der Realität entsprechen.
Die auf Ihrem Monitor verwendete Farbtiefe wird im folgenden Registrierungswert erfasst:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPel
Auf meiner Box wurde dieser hexadezimale Wert auf 0x00000008 (8) festgelegt, was bedeutet, dass mein Bildschirm eine Farbtiefe von 8 Bit verwendet. (256 Farben) Wenn Sie es auf 16 Bit (0x00000010) ändern, werden 65536 Farben (hohe Farben) angezeigt. Andere normalerweise verfügbare Werte sind 24 Bit (0x00000018) und 32 Bit (0x00000020).Quelle
quelle
Ich konnte dies mit einer Kombination aus der obigen Antwort von @ kenny-trytek und dem Einrichten der automatischen Anmeldung zum Laufen bringen.
Ich denke, die VNC-Auflösung wird nur für den aktuellen Benutzer festgelegt. Wenn Sie also die automatische Anmeldung einrichten, wird sichergestellt, dass dieser Benutzer eine offene Sitzung hat.
Richten Sie die automatische Anmeldung unter https://support.microsoft.com/en-us/kb/324737 ein
Geben Sie als Nächstes im Startordner des Benutzers eine Verknüpfung oder eine Bat-Datei an, um den Selenknotenprozess zu starten.
quelle
Ich habe alles versucht und bin gescheitert. Ich habe eine für meine Situation einzigartige Lösung gefunden, die einfach war. Verwenden Sie Windows Power-Shell.
schrieb Power-Shell-Skript
Nennen Sie es Auflösung.ps1
gespeichert in C: \ myTestFolder
und führen Sie es über die Befehlszeile wie unten aus ..... (meine Skripte werden von Batch-Dateien gesteuert)
quelle
So stelle ich die Bildschirmauflösung ohne Kopf unter AWS Windows mithilfe von RDP ein:
Beachten Sie, dass für die automatische Anmeldung ein Benutzername und ein Kennwort erforderlich sind und dass das Kennwort unverschlüsselt unter der Windows-Registrierung HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon gespeichert ist.
Getestet auf Amazon Windows Server 2012 R2 AMI.
Hier ist ein Kochbuch, das die oben genannten Aufgaben ausführt : https://github.com/dhoer/chef-windows_screenresolution
quelle