(Я спорил между публикацией этого здесь, ServerFault и StackOverFlow. Решено для этого. Надеюсь, это в нужном месте.)
Мы запускаем наш набор для тестирования пользовательского интерфейса, используя Selenium Grid 2, на машине с Amazon EC2 Windows (которая запускается с помощью Amazon CloudFormation API). У меня вопрос, как мне изменить разрешение этой машины?
Если я удаленно в него, я могу указать разрешение с помощью удаленного рабочего стола. Но очевидно, что это не навсегда изменит разрешение. Когда мы запускаем наши тесты, разрешение настолько мало, что браузер объединяет элементы и приводит к сбою тестов.
Любые идеи? Что-то, что я могу вставить в рецепт CloudFormation? Могу ли я что-то сделать с изображением до создания AMI?
Спасибо.
mstsc.exe /console
Ответы:
Отказ от ответственности: TightVNC не является безопасным, поэтому, если безопасность является проблемой, вам может потребоваться найти другой подход. Весь процесс займет всего несколько минут, поэтому дыра в безопасности небольшая, но тем не менее.
источник
Вы можете изменить разрешение экрана, изменив два параметра реестра. Эти два значения:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolution
где GUID - это случайно сгенерированный GUID.Вы можете указать любое значение XResolution и YResolution, если оно шестнадцатеричное.
Примечание. В случае использования ЭЛТ-монитора указание абсурдного разрешения может привести к его повреждению. В случае с ЖК-монитором ваш монитор может больше не отображать пользовательский интерфейс. Хороший способ изменить разрешение экрана - записать количество пикселей, которым вы хотите заполнить ширину экрана (это XResolution), и количество пикселей, которое вы хотите видеть на высоте экрана (YResolution). Калькулятор Windows (недоступный в Server Core, вам потребуется найти другой компьютер или аппаратный расширенный калькулятор) предлагает простой способ преобразования десятичных сумм в шестнадцатеричные суммы. Затем вы можете использовать эти значения для изменения соответствующих значений реестра. Перезапуск сделает ваше предпочтительное разрешение экрана реальностью.
Глубина цвета, используемая на вашем мониторе, фиксируется в следующем значении реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPel
В моем окне это шестнадцатеричное значение было установлено в 0x00000008 (8), что означало, что мой экран использовал 8-битную глубину цвета. (256 цветов) Изменение его на 16 бит (0x00000010) покажет 65536 цветов (высокие цвета). Обычно доступны следующие значения: 24 бита (0x00000018) и 32 бита (0x00000020).Источник
источник
Я смог заставить это работать, используя комбинацию ответа @ kenny-trytek выше и настройку автоматического входа в систему.
Я думаю, что разрешение VNC устанавливается только для текущего пользователя, поэтому настройка автоматического входа гарантирует, что у этого пользователя открытая сессия.
Настройка автоматического входа в систему https://support.microsoft.com/en-us/kb/324737
Затем в папке «Запуск пользователей» укажите ярлык или файл bat, чтобы запустить процесс узла селена.
источник
Я перепробовал все самое самое все выше и не получилось. Нашел решение, уникальное для моей ситуации: простое использование Windows Power-Shell.
написал сценарий Power-Shell
Назовите это resolution.ps1
сохранено в C: \ myTestFolder
и запустить его из командной строки, как показано ниже ..... (мои сценарии управляются пакетными файлами)
источник
Вот как я устанавливаю разрешение экрана без головы в AWS Windows, используя RDP:
Обратите внимание, что для автоматического входа требуется имя пользователя и пароль, а пароль хранится в незашифрованном виде в реестре Windows HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon.
Протестировано на Amazon Windows Server 2012 R2 AMI.
Вот поваренная книга шеф-повара, которая делает вышеупомянутое: https://github.com/dhoer/chef-windows_screenresolution
источник