(Saya berdebat antara memposting ini di sini, ServerFault, dan StackOverFlow. Setuju untuk ini. Semoga ada di tempat yang tepat.)
Kami menjalankan rangkaian pengujian UI kami menggunakan Selenium Grid 2 dengan mesin Amazon EC2 Windows (yang dimulai dengan menggunakan API CloudFormation Amazon). Pertanyaan saya adalah, bagaimana cara mengubah resolusi mesin itu?
Jika saya jauh ke dalamnya, saya dapat menentukan resolusi menggunakan Remote Desktop. Tapi jelas itu tidak mengubah resolusi secara permanen. Saat kami menjalankan pengujian, resolusinya sangat kecil sehingga peramban menyatukan elemen-elemen dan menyebabkan pengujian gagal.
Ada ide? Apakah ada sesuatu yang bisa saya masukkan ke dalam resep CloudFormation? Apakah ada yang bisa saya lakukan untuk gambar sebelum membuat AMI?
Terima kasih.
mstsc.exe /console
Jawaban:
Penafian: TightVNC tidak aman, jadi jika keamanan merupakan masalah, Anda mungkin perlu menemukan pendekatan yang berbeda. Seluruh proses hanya akan memakan waktu beberapa menit, jadi lubang keamanannya kecil, tapi tetap saja ada.
sumber
Anda dapat mengubah resolusi layar dengan memodifikasi dua nilai registri. Kedua nilai ini adalah:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolution
Di mana GUID adalah GUID yang dibuat secara acak.Anda benar-benar dapat menentukan nilai XResolution dan YResolution selama mereka hexadecimal.
Catatan: Jika monitor CRT menentukan resolusi yang absurd dapat merusak monitor Anda. Dalam hal monitor LCD, monitor Anda mungkin tidak lagi menampilkan antarmuka pengguna. Cara yang baik untuk mengubah resolusi Layar Anda adalah dengan menuliskan jumlah piksel yang Anda ingin isi dengan lebar layar Anda (ini adalah XResolution) dan jumlah piksel yang Anda inginkan pada ketinggian layar Anda (YResolution). Kalkulator Windows (tidak tersedia di Server Core, Anda harus menemukan komputer lain atau kalkulator perangkat keras tingkat lanjut) menawarkan cara mudah untuk mengkonversi jumlah desimal menjadi jumlah heksadesimal. Anda kemudian dapat menggunakan nilai-nilai ini untuk mengubah nilai registri yang sesuai. Restart akan membuat resolusi layar pilihan Anda memenuhi kenyataan.
Kedalaman warna yang digunakan pada monitor Anda ditangkap dalam nilai registri berikut:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPel
Pada kotak saya, nilai heksadesimal ini diatur ke 0x00000008 (8) yang berarti layar saya menggunakan kedalaman warna 8 bit. (256 warna) Mengubahnya menjadi 16 bit (0x00000010) akan menampilkan 65536 warna (Warna Tinggi) Nilai-nilai lain yang biasanya tersedia adalah 24 bit (0x00000018) dan 32 bit (0x00000020).Sumber
sumber
Saya dapat menjalankan ini menggunakan kombinasi jawaban @ kenny-trytek di atas dan mengatur login otomatis.
Saya pikir resolusi VNC hanya akan ditetapkan untuk pengguna saat ini, jadi pengaturan masuk otomatis memastikan bahwa pengguna ini memiliki sesi terbuka.
Siapkan login otomatis https://support.microsoft.com/en-us/kb/324737
Selanjutnya, di folder Start Up pengguna memberikan shortcut atau file bat untuk memulai proses selenium node.
sumber
Saya mencoba semuanya di atas dan gagal. Menemukan solusi unik untuk situasi saya yang sederhana ..menggunakan windows power-shell.
menulis skrip power-shell
beri nama ini resolution.ps1
disimpan di C: \ myTestFolder
dan jalankan dari command line seperti di bawah ini ..... (skrip saya digerakkan oleh file batch)
sumber
Inilah cara saya mengatur resolusi layar tanpa kepala di AWS Windows menggunakan RDP:
Perhatikan bahwa masuk otomatis memerlukan nama pengguna dan kata sandi dan kata sandi disimpan tidak terenkripsi di bawah jendela registri HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon.
Diuji di Amazon Windows Server 2012 R2 AMI.
Berikut ini adalah buku masak Chef yang melakukan hal di atas: https://github.com/dhoer/chef-windows_screenresolution
sumber