9

(Я спорил между публикацией этого здесь, ServerFault и StackOverFlow. Решено для этого. Надеюсь, это в нужном месте.)

Мы запускаем наш набор для тестирования пользовательского интерфейса, используя Selenium Grid 2, на машине с Amazon EC2 Windows (которая запускается с помощью Amazon CloudFormation API). У меня вопрос, как мне изменить разрешение этой машины?

Если я удаленно в него, я могу указать разрешение с помощью удаленного рабочего стола. Но очевидно, что это не меняет разрешение навсегда. Когда мы запускаем наши тесты, разрешение настолько мало, что браузер объединяет элементы и приводит к сбою тестов.

Есть идеи? Что я могу добавить в рецепт CloudFormation? Могу ли я что-то сделать с изображением до создания AMI?

Снимок экрана диспетчера устройств

Благодарю.

4 ответа4

4

Отказ от ответственности: TightVNC не является безопасным, поэтому, если безопасность является проблемой, вам может потребоваться найти другой подход. Весь процесс займет всего несколько минут, поэтому дыра в безопасности небольшая, но тем не менее.

  1. Установите TightVNC Server на экземпляр EC2, чтобы вы могли войти в консоль
  2. Отключите все сеансы удаленного рабочего стола пользователя и верните сеанс в консоль
  3. Используйте TightVNC Viewer для входа в консоль экземпляра EC2, убедившись, что порт 5900 открыт для этого соединения
    • Щелкните правой кнопкой мыши на рабочем столе и выберите "Разрешение экрана".
    • Выберите "Расширенные настройки"
    • Выберите "Список всех режимов"
    • Выберите более высокое разрешение
1

Вы можете изменить разрешение экрана, изменив два параметра реестра. Эти два значения: 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).

Источник

1

Я смог заставить это работать, используя комбинацию ответа @ kenny-trytek выше и настройку автоматического входа в систему.

Я думаю, что разрешение VNC устанавливается только для текущего пользователя, поэтому настройка автоматического входа гарантирует, что у этого пользователя открытая сессия.

Настройка автоматического входа в систему https://support.microsoft.com/en-us/kb/324737

Затем в папке «Запуск пользователей» укажите ярлык или файл bat, чтобы запустить процесс узла селена.

0

Вот как я устанавливаю разрешение экрана без головы в AWS Windows с помощью RDP:

  • создать нового пользователя с именем rdp_local
  • создать сценарий запуска для RDP в указанной учетной записи пользователя (например, селен) с указанным разрешением
  • добавить правило брандмауэра, чтобы открыть порт RDP 3389
  • настроить автоматический вход для входа в систему как rdp_local при перезагрузке

Обратите внимание, что для автоматического входа требуются имя пользователя и пароль, а пароль хранится в незашифрованном виде в реестре Windows HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon.

Протестировано на Amazon Windows Server 2012 R2 AMI.

Вот поваренная книга шеф-повара, которая делает вышеупомянутое: https://github.com/dhoer/chef-windows_screenresolution

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .