(Eu debati entre postar isso aqui, ServerFault e StackOverFlow. Resolvi fazer isso. Espero que esteja no lugar certo.)
Executamos nosso conjunto de testes de interface do usuário usando o Selenium Grid 2 com uma máquina Windows do Amazon EC2 (iniciada com o uso das APIs CloudFormation da Amazon). Minha pergunta é: como altero a resolução dessa máquina?
Se eu fizer o controle remoto, posso especificar a resolução usando a Área de Trabalho Remota. Mas, obviamente, isso não altera permanentemente a resolução. Quando executamos nossos testes, a resolução é tão pequena que o navegador junta os elementos e causa falha nos testes.
Alguma ideia? Existe algo que eu possa colocar na receita do CloudFormation? Existe algo que eu possa fazer com a imagem antes de criar a AMI?
Obrigado.
fonte
mstsc.exe /console
Respostas:
Isenção de responsabilidade: o TightVNC não é seguro; portanto, se a segurança é um problema, talvez você precise encontrar uma abordagem diferente. Todo o processo levará apenas alguns minutos; portanto, a brecha na segurança é pequena, mas ainda assim existe.
fonte
Você pode alterar a resolução da tela modificando dois valores do registro. Esses dois valores são:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolution
Onde GUID é um GUID gerado aleatoriamente.Na verdade, você pode especificar qualquer valor XResolution e YResolution, desde que sejam hexadecimais.
Nota: No caso de um monitor CRT, especificar uma resolução absurda pode danificá-lo. No caso de um monitor LCD, seu monitor pode não mostrar mais nenhuma interface do usuário. Uma boa maneira de alterar a resolução da tela é anotar a quantidade de pixels com a qual você deseja preencher a largura da tela (este é o XResolution) e a quantidade de pixels que você deseja na altura da tela (o YResolution). A calculadora do Windows (não disponível no Server Core, você precisará encontrar outro computador ou uma calculadora avançada de hardware) oferece uma maneira fácil de converter valores decimais em valores hexadecimais. Você pode usar esses valores para modificar os valores correspondentes do Registro. Uma reinicialização fará com que sua resolução de tela preferida atenda à realidade.
A profundidade de cores usada no seu monitor é capturada no seguinte valor do registro:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPel
Na minha caixa, esse valor hexadecimal foi definido como 0x00000008 (8), o que significava que minha tela usava uma profundidade de cores de 8 bits. (256 cores) A alteração para 16 bits (0x00000010) mostrará 65536 cores (cores altas) Outros valores normalmente disponíveis são 24 bits (0x00000018) e 32 bits (0x00000020).Fonte
fonte
Consegui fazer isso funcionar usando uma combinação da resposta do @ kenny-trytek acima e configurando o login automático.
Eu acho que a resolução VNC é definida apenas para o usuário atual, portanto, a configuração do login automático garante que esse usuário tenha uma sessão aberta.
Configuração de logon automático https://support.microsoft.com/en-us/kb/324737
Em seguida, na pasta Inicialização do usuário, forneça um atalho ou arquivo bat para iniciar o processo do nó selênio.
fonte
Eu tentei tudo acima de tudo e falhei. Encontrei uma solução única para a minha situação que era simples ..use windows power-shell.
escreveu o script power-shell
chame-o de resolution.ps1
salvo em C: \ myTestFolder
e execute-o na linha de comando como abaixo ..... (meus scripts são conduzidos por arquivos em lote)
fonte
Aqui está como eu defino a resolução da tela sem cabeça no AWS Windows usando o RDP:
Observe que o logon automático requer um nome de usuário e senha e que a senha é armazenada não criptografada no registro do Windows HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon do Windows.
Testado na AMI do Amazon Windows Server 2012 R2.
Aqui está um livro de receitas do Chef que faz o seguinte: https://github.com/dhoer/chef-windows_screenresolution
fonte