Saya memiliki suite tes selenium yang menjalankan banyak tes dan pada setiap tes baru itu membuka jendela browser di atas semua jendela lain yang saya buka. Sangat menggelegar saat bekerja di lingkungan lokal. Adakah cara untuk memberitahu selenium atau OS (MAC) untuk membuka jendela di latar belakang?
selenium
selenium-webdriver
webdriver
selenium-grid
kevzettler
sumber
sumber
driver = webdriver.Firefox()
dalam kode Anda, ikuti jawaban saya di sini: stackoverflow.com/a/23898148/1515819Jawaban:
Ada beberapa cara, tetapi itu tidak sederhana "menetapkan nilai konfigurasi". Kecuali Anda berinvestasi di peramban tanpa kepala, yang tidak sesuai dengan persyaratan semua orang, ini sedikit meretas:
Bagaimana cara menyembunyikan jendela Firefox (Selenium WebDriver)?
dan
Apakah mungkin menyembunyikan browser di Selenium RC?
Anda dapat 'seharusnya', memasukkan beberapa parameter ke Chrome, khususnya:
--no-startup-window
Perhatikan bahwa untuk beberapa browser, terutama IE, itu akan merusak tes Anda untuk tidak menjalankannya dalam fokus.
Anda juga dapat meretas sedikit dengan AutoIT, untuk menyembunyikan jendela begitu dibuka.
sumber
Jika Anda menggunakan driver web Selenium dengan Python, Anda dapat menggunakan PyVirtualDisplay, pembungkus Python untuk Xvfb dan Xephyr.
PyVirtualDisplay membutuhkan Xvfb sebagai ketergantungan. Di Ubuntu, instal Xvfb:
kemudian instal PyVirtualDisplay dari Pypi:
Contoh skrip Selenium dalam Python dalam mode tanpa kepala dengan PyVirtualDisplay:
EDIT Jawaban awal telah diposting pada tahun 2014 dan sekarang kita berada di puncak tahun 2018. Seperti yang lainnya, browser juga telah maju. Chrome memiliki versi yang sepenuhnya tanpa kepala sekarang yang menghilangkan kebutuhan untuk menggunakan perpustakaan pihak ketiga mana pun untuk menyembunyikan jendela UI. Kode sampel adalah sebagai berikut:
sumber
Chrome 57 memiliki opsi untuk melewati flag - headless, yang membuat jendela tidak terlihat.
Bendera ini berbeda dari --no-startup-window karena yang terakhir tidak meluncurkan jendela. Ini digunakan untuk hosting aplikasi latar belakang, seperti yang dikatakan halaman ini .
Kode Java untuk meneruskan bendera ke webdriver Selenium (ChromeDriver):
sumber
Untuk menjalankan tanpa browser apa pun, Anda dapat menjalankannya dalam mode tanpa kepala .
Saya tunjukkan satu contoh dalam Python yang bekerja untuk saya sekarang
Saya juga menambahkan Anda sedikit lebih banyak info tentang ini di situs web Google resmi https://developers.google.com/web/updates/2017/04/headless-chrome
sumber
Karena Chrome 57 Anda memiliki argumen tanpa kepala:
Mode tanpa kepala Chrome berperforma 30,97% lebih baik daripada versi UI. Pengemudi tanpa kepala lainnya PhantomJS menghasilkan 34,92% lebih baik daripada mode tanpa kepala Chrome.
PhantomJSDriver
Mode tanpa kepala dari Mozilla Firefox memiliki kinerja 3,68% lebih baik daripada versi UI. Ini mengecewakan karena mode tanpa kepala Chrome mencapai waktu> 30% lebih baik daripada UI. Pengemudi tanpa kepala lainnya PhantomJS menghasilkan 34,92% lebih baik daripada mode tanpa kepala Chrome. Yang mengejutkan bagi saya, browser Edge mengalahkan mereka semua.
Ini tersedia dari Firefox 57+
Mode tanpa kepala dari Mozilla Firefox memiliki kinerja 3,68% lebih baik daripada versi UI. Ini mengecewakan karena mode tanpa kepala Chrome mencapai waktu> 30% lebih baik daripada UI. Pengemudi tanpa kepala lainnya PhantomJS menghasilkan 34,92% lebih baik daripada mode tanpa kepala Chrome. Yang mengejutkan bagi saya, browser Edge mengalahkan mereka semua.
sumber
Saya sarankan menggunakan Phantom Js untuk info lebih lanjut Anda perlu mengunjungi Situs Web Resmi Phantom
setelah mengunduh PhantomJs.exe, Anda perlu mengimpor ke proyek Anda seperti yang dapat Anda lihat pada gambar di bawah ini. Phantomjs berada dalam kesamaan >> Library >> phantomjs.exe
Sekarang yang Anda harus di dalam kode Selenium Anda adalah mengubah baris
Untuk sesuatu seperti
Itu dia, itu berhasil untuk saya. dan pasti dia akan bekerja untukmu, Cheers
sumber
Di windows Anda dapat menggunakan win32gui:
Contoh:
Namun ada satu masalah dengan solusi ini - menggunakan metode send_keys membuat jendela muncul. Anda dapat mengatasinya dengan menggunakan javascript yang tidak menampilkan jendela:
sumber
Saya menggunakan kode ini untuk Firefox di Windows dan mendapat jawaban: (referensi di sini )
Tapi saya tidak mengujinya untuk browser lain.
sumber
Mungkin dalam opsi. Berikut adalah kode java yang identik.
sumber
Ini adalah solusi NodeJS sederhana yang bekerja di Selenium versi 4.x (mungkin juga 3.x).
Chrome:
Firefox:
Semuanya hanya berjalan di latar belakang. Tepat seperti yang kita inginkan.
sumber
Jika Anda menggunakan driver chrome, Anda dapat menggunakan kode yang sangat sederhana ini: (berfungsi untuk saya)
sumber
Pada * nix, Anda juga dapat menjalankan X-server tanpa kepala seperti Xvfb dan arahkan variabel DISPLAY ke sana:
Server X palsu untuk pengujian?
sumber
Berikut adalah solusi .net yang berfungsi untuk saya:
Unduh PhantomJs di sini http://phantomjs.org/download.html
Salin .exe dari folder nampan di unduh dan tempel di folder nampan debug / lepaskan proyek Visual Studio Anda.
Tambahkan ini menggunakan
Dalam kode Anda, buka driver seperti ini:
sumber
Jika Anda menggunakan Ubuntu (Gnome), satu solusi sederhana adalah menginstal Gnome extension auto-move-window: https://extensions.gnome.org/extension/16/auto-move-windows/
Kemudian atur browser (mis. Chrome) ke ruang kerja lain (mis. Workspace 2). Browser akan berjalan secara diam-diam di ruang kerja lain dan tidak mengganggu Anda lagi. Anda masih dapat menggunakan Chrome di ruang kerja Anda tanpa gangguan apa pun.
sumber
hai saya punya masalah yang sama dengan chromedriver saya menggunakan python dan options.add_argument ("tanpa kepala") tidak bekerja untuk saya tetapi kemudian saya menyadari bagaimana cara memperbaikinya sehingga saya membawanya dalam kode di bawah ini
Saya harap ini berhasil untuk Anda.
sumber
Salah satu cara untuk mencapai ini adalah dengan menjalankan browser dalam mode tanpa kepala. Keuntungan lain dari ini adalah bahwa tes dijalankan lebih cepat.
Silakan temukan kode di bawah ini untuk mengatur mode tanpa kepala di browser chrome.
sumber