Kami sedang mempertimbangkan untuk meningkatkan server produksi kami dari Ubuntu- desktop 10.04 ke Ubuntu- server 12.04.
Kami memiliki berbagai layanan yang berjalan di OS desktop kami saat ini seperti Selenium Web Driver. Pertanyaan saya adalah dapatkah Selenium Web Driver dijalankan dari sistem berbasis cli?
Saya langsung berpikir bahwa itu tidak bisa, karena bergantung pada Firefox, tetapi saya ingin seseorang membuktikan bahwa saya salah!
Jawaban:
Yang Anda cari adalah browser tanpa kepala.
Ya, Selenium di Firefox dapat dijalankan tanpa hambatan. Berikut postingan yang bisa Anda ikuti.
Berikut adalah ringkasan langkah-langkah untuk menyiapkan Xvfb
sumber
Xvfb
, bukan untuk menginstal dan mengkonfigurasi Selenium (yang membutuhkangeckodriver
jalur).subprocess.Popen('Xvfb...')
atauos.system('Xvfb...')
, tetapi pastikan untuk melakukannya sebelum mengimpor webdriver.Chrome sekarang memiliki mode tanpa kepala:
sumber
Iya. Anda dapat menggunakan
HTMLUnitDriver
sebagai gantinya untukFirefoxDriver
saat memulai webdriver. Ini adalah pengaturan browser tanpa kepala. Detailnya dapat ditemukan di sini .sumber
Jika Anda menginginkan dukungan browser tanpa kepala, maka ada pendekatan lain yang dapat Anda gunakan.
https://github.com/detro/ghostdriver
Itu diumumkan selama Konferensi Selenium dan masih dalam pengembangan. Ini menggunakan PhantomJS sebagai browser dan jauh lebih baik daripada HTMLUnitDriver, belum ada screenshot, tetapi karena masih dalam pengembangan aktif.
sumber
Opsional adalah menggunakan
pyvirtualdisplay
seperti ini:Versi yang lebih pendek adalah:
Ini biasanya merupakan encapsulate python
xvfb
, dan lebih nyaman entah bagaimana.Ngomong-ngomong, meskipun
PhantomJS
merupakan browser tanpa kepala dan tidak ada jendela yang terbuka jika Anda menggunakannya, tampaknya ituPhantomJS
masih perlu lingkungan gui untuk berfungsi.Saya mendapat Kode Kesalahan -6 ketika saya menggunakan
PhantomJS()
alih-alihFirefox()
dalam mode tanpa kepala (konsol yang terhubung dengan dempul). Namun semuanya baik-baik saja di lingkungan desktop.sumber
PEMBARUAN: Anda tidak perlu XVFB untuk menjalankan Firefox tanpa kepala lagi. Firefox v55 + di Linux dan Firefox v56 + di Windows / Mac sekarang mendukung eksekusi tanpa kepala.
Saya menambahkan beberapa dokumentasi cara menggunakan di sini:
https://developer.mozilla.org/en-US/Firefox/Headless_mode#Selenium_in_Java
sumber
Pilihan lainnya adalah GhostDriver yang sekarang secara resmi didukung oleh WebDriver: Ghostdriver memperoleh kinerja aktual
sumber
Ketahuilah bahwa webclient HtmlUnitDriver adalah single-threaded dan Ghostdriver hanya memiliki 40% dari fungsionalitas untuk menjadi WebDriver.
Meskipun demikian, Ghostdriver berjalan dengan baik untuk pengujian dan saya mengalami masalah untuk menghubungkannya ke hub WebDriver.
sumber
Ya, Anda dapat menjalankan skrip pengujian tanpa browser, tetapi Anda harus menjalankannya dalam mode tanpa kepala.
sumber
mungkin Anda perlu menyetel dimensi ukuran jendela Anda. seperti:
jika juga tidak berfungsi, coba tingkatkan dimensi ukuran jendela.
sumber
Instal & jalankan Firefox dalam container:
Hubungkan menggunakan
webdriver.Remote
:sumber