Selenium

Menggunakan Selenium dengan Driver Firefox

Menggunakan Selenium dengan Driver Firefox
Selenium adalah alat yang hebat untuk pengujian browser, otomatisasi web, dan pengikisan web. Selenium dapat mengontrol sebagian besar browser web modern. saya.e., Firefox, Chrome, Chromium, Opera, Apple Safari. Untuk mengontrol browser, Selenium membutuhkan alat yang disebut driver Web. Sebagian besar vendor browser modern menyediakan perangkat lunak driver Web untuk browser web mereka.

Untuk mengontrol browser web Mozilla Firefox dari Selenium, Anda harus menggunakan Gecko Web Driver.

Pada artikel ini, saya akan menunjukkan kepada Anda cara mengatur Selenium untuk menjalankan tes browser, otomatisasi web, tugas pengikisan web menggunakan browser web Mozilla Firefox. Jadi, mari kita mulai.

Prasyarat:

Untuk mencoba perintah dan contoh artikel ini, Anda harus memiliki,

1) Distribusi Linux (lebih disukai Ubuntu) diinstal pada komputer Anda.
2) Python 3 diinstal di komputer Anda.
3) PIP 3 diinstal di komputer Anda.
4) Mozilla Firefox diinstal di komputer Anda.

Anda dapat menemukan banyak artikel tentang topik ini di LinuxHint.com. Pastikan untuk memeriksanya jika Anda memerlukan bantuan.

Mempersiapkan Lingkungan Virtual Python 3 untuk Proyek:

Lingkungan Virtual Python digunakan untuk membuat direktori proyek Python yang terisolasi. Modul Python yang Anda instal menggunakan PIP akan diinstal di direktori proyek saja, tidak secara global.

Python virtualenv modul digunakan untuk mengelola lingkungan virtual Python.

Anda dapat menginstal Python virtualenv modul secara global menggunakan PIP 3 sebagai berikut:

$ sudo pip3 instal virtualenv

Python virtualenv harus dipasang.

Buat direktori proyek selenium-firefox/ di direktori kerja Anda saat ini sebagai berikut:

$ mkdir -pv selenium-firefox/drivers

Arahkan ke direktori proyek yang baru Anda buat selenium-firefox/ sebagai berikut:

$cd selenium-firefox/

Buat lingkungan virtual Python di direktori proyek Anda dengan perintah berikut:

$ virtualenv .venv

Lingkungan virtual Python harus dibuat di direktori proyek Anda.

Aktifkan lingkungan virtual Python dari direktori proyek Anda dengan perintah berikut:

$ sumber .env/bin/aktifkan

Memasang Pustaka Selenium Python:

Pustaka selenium tersedia di repositori resmi Python PyPI.

Anda dapat menginstal perpustakaan Selenium Python menggunakan PIP 3 sebagai berikut:

$pip3 instal selenium

Pustaka Selenium Python harus diinstal.

Menginstal Driver Firefox Gecko:

Untuk mengunduh Firefox Gecko Driver, kunjungi halaman rilis GitHub mozilla/geckodriver dari browser web favorit Anda.

Seperti yang Anda lihat, v0.26.0 adalah versi terbaru dari Firefox Gecko Driver pada saat penulisan ini.

Untuk mengunduh Driver Firefox Gecko, gulir ke bawah sedikit dan klik pada file Linux geckodriver tar.arsip gz tergantung pada arsitektur sistem operasi Anda.

Jika Anda menggunakan sistem operasi 32-bit, klik tombol geckodriver-v0.26.0-linux32.ter.gz tautan.

Jika Anda menggunakan sistem operasi 64-bit, klik tombol geckodriver-v0.26.0-linuxx64.ter.gz tautan.

Saya akan mengunduh versi 64-bit dari Firefox Gecko Driver.

Browser Anda akan meminta Anda untuk menyimpan arsip. Pilih Menyimpan file dan klik baik.

Driver Firefox Gecko harus diunduh.

Arsip Firefox Gecko Driver harus diunduh di downloaded ~/Unduhan direktori.

Anda dapat mengekstrak geckodriver-v0.26.0-linux64.ter.gz arsip dari ~/Unduhan direktori ke pengemudi/ direktori proyek Anda dengan perintah berikut:

$ tar -xzf ~/Downloads/geckodriver-v0.26.0-linux64.ter.gz -C driver/

Setelah arsip Firefox Gecko Driver diekstraksi, file biner baru geckodriver harus dibuat dalam pengemudi/ direktori proyek Anda, seperti yang Anda lihat pada tangkapan layar di bawah ini.

Memulai Selenium menggunakan Firefox Gecko Driver:

Di bagian ini, saya akan menunjukkan kepada Anda cara mengatur skrip Selenium Python pertama Anda untuk menguji apakah Driver Firefox Gecko berfungsi.

Pertama, buat skrip Python baru ex00.py di direktori proyek Anda dan ketik baris berikut di dalamnya.

dari selenium impor webdriver
dari selenium.webdriver.umum.kunci impor Kunci
browser = webdriver.Firefox(executable_path="./driver/geckodriver")
peramban.dapatkan('https://www.linuxhint.com')
print('Judul: %s' % browser.judul)
peramban.berhenti()

Setelah selesai, simpan ex00.py skrip python.

Baris 1 dan 2 mengimpor semua komponen yang diperlukan dari selenium Pustaka Python.

Baris 4 membuat objek driver web Firefox menggunakan webdriver.Firefox() metode dan menyimpannya di a peramban variabel. Itu executable_path argumen digunakan untuk memberi tahu driver web di mana mencari biner Firefox Gecko Driver. Dalam hal ini, geckodriver biner dari pengemudi/ direktori proyek.

Di jalur 6, peramban.Dapatkan() metode memuat linuxhint.com di browser web Firefox.

Setelah situs web selesai dimuat, baris 7 mencetak judul situs web, di sini, peramban.judul properti digunakan untuk mengakses judul situs web.

Baris 8 menutup browser web Firefox menggunakan peramban.berhenti() metode.

Anda dapat menjalankan skrip Python ex00.py dengan perintah berikut:

$ python3 ex00.py

Selenium harus membuka browser web Firefox dan mengunjungi linuxhint.situs web com secara otomatis.

Setelah halaman dimuat, itu akan mencetak judul situs web di konsol, dan browser web akan menutup secara otomatis.

Jadi, Selenium bekerja dengan benar dengan driver Firefox Gecko.

Contoh 01: Menjalankan Firefox dalam Mode Tanpa Kepala menggunakan Selenium

Anda juga dapat menjalankan Selenium dengan Firefox Gecko Driver dalam mode tanpa kepala. Mode tanpa kepala Selenium Firefox tidak memerlukan antarmuka pengguna grafis apa pun yang diinstal di komputer Anda. Jadi, Anda akan dapat menjalankan Selenium Firefox di server tanpa kepala Linux mana pun.

Pertama, buat skrip Python baru ex01.py di direktori proyek Anda dan ketik baris kode berikut di dalamnya.

dari selenium impor webdriver
dari selenium.webdriver.firefox.opsi impor Opsi
dari selenium.webdriver.umum.kunci impor Kunci
firefoxOptions = Opsi()
firefoxOptions.add_argument("-tanpa kepala")
browser = webdriver.Firefox(executable_path="./drivers/geckodriver", opsi = firefoxOptions)
peramban.dapatkan('https://www.linuxhint.com')
print('Judul: %s' % browser.judul)
peramban.berhenti()

Setelah selesai, simpan ex01.py skrip python.

Jalur 1 dan jalur 3 sama dengan jalur 1 dan jalur 2 ex00.py skrip python.

Baris 2 mengimpor Firefox Pilihan dari selenium Perpustakaan.

Baris 5 membuat objek Opsi firefox dan menyimpannya di firefoxOptions variabel.

Baris 6 menggunakan firefoxOptions.tambahkan_argumen() metode untuk menambahkan -tanpa kepala Bendera baris perintah Firefox ke firefoxOptions obyek.

Di jalur 8, pilihan argumen digunakan untuk melewatkan firefoxOptions saat menginisialisasi driver web Firefox menggunakan webdriver.Firefox() metode.

Sisa dari baris ex01.py skripnya sama dengan ex00.py.

Anda dapat menjalankan skrip Python ex01.py dengan perintah berikut:

$ python3 ex01.py

Seperti yang Anda lihat, judul situs web (linuxhint.com) dicetak di konsol tanpa membuka versi grafis apa pun dari browser web Firefox.

Seperti yang Anda lihat, Selenium juga bekerja pada lingkungan tanpa kepala Ubuntu di mana saya tidak menginstal antarmuka pengguna grafis.

Sekarang Anda tahu cara melewati pass -tanpa kepala Bendera/opsi baris perintah Firefox menggunakan driver Selenium Firefox Gecko, Anda juga dapat melewati bendera/opsi baris perintah Firefox lainnya.

Anda dapat menemukan semua flag/opsi baris perintah Firefox yang didukung di Opsi baris perintah - Mozilla | halaman MDN.

Contoh 02: Mengekstrak Lorem Ipsum menggunakan Selenium

Di bagian ini, saya akan menunjukkan kepada Anda bagaimana melakukan scrapping web dasar menggunakan Selenium Firefox Gecko Driver.

Pertama, kunjungi halaman Lorem Ipsum Generator dari browser web Firefox. Seperti yang Anda lihat, halaman menghasilkan 5 paragraf acak random. Mari ekstrak semua teks yang dihasilkan (semua 5 paragraf) dari halaman ini.

Sebelum Anda mulai mengekstrak informasi dari halaman web, Anda harus mengetahui struktur HTML dari konten halaman web.

Anda dapat dengan mudah menemukan struktur HTML dari konten yang ingin Anda ekstrak menggunakan Alat Pengembang Firefox. Membuka Alat Pengembang Firefox, tekan tombol kanan mouse (RMB) pada halaman dan klik Elemen Inspeksi (Q).

Alat Pengembang Firefox harus dibuka. Klik pada Periksa ikon () seperti yang ditandai pada tangkapan layar di bawah ini.

Arahkan kursor ke paragraf pertama, seperti yang ditunjukkan pada tangkapan layar di bawah. Kemudian, tekan tombol kiri mouse (LMB) untuk memilihnya.

Struktur HTML paragraf harus ditampilkan di in Memeriksa tab dari Alat Pengembang Firefox. Seperti yang Anda lihat, paragraf lorem ipsum yang dihasilkan ada di dalam a div tag yang memiliki Indo lipsum.

Untuk mengekstrak paragraf lorem ipsum menggunakan Selenium Firefox Gecko Driver, buat skrip Python baru ex02.py di direktori proyek Anda dan ketik baris kode berikut di dalamnya.

dari selenium impor webdriver
dari selenium.webdriver.firefox.opsi impor Opsi
dari selenium.webdriver.umum.kunci impor Kunci
firefoxOptions = Opsi()
firefoxOptions.add_argument("-tanpa kepala")
browser = webdriver.Firefox(executable_path="./drivers/geckodriver", opsi = firefoxOptions)
peramban.dapatkan('https://www.lipsum.com/feed/html')
lipsum = peramban.find_element_by_id('lipsum')
cetak (lipsum.teks)
peramban.berhenti()

Setelah selesai, simpan ex02.py skrip python.

Baris 10 memuat halaman generator lorem ipsum menggunakan peramban.Dapatkan() metode.

Isi lorem ipsum ada di dalam a div tag dengan id lipsum. Baris 12 menggunakan peramban.temukan_elemen_oleh_id() metode untuk memilihnya dari halaman web dan menyimpannya di lipsum variabel.

Baris 13 mencetak konten lorem ipsum yang dihasilkan di konsol. Di sini, teks properti digunakan untuk mengakses konten dari div elemen dengan id lipsum.

Sekarang, jalankan skrip Python ex02.py sebagai berikut:

$ python3 ex02.py

Seperti yang Anda lihat, Selenium mengekstrak konten lorem ipsum dari halaman web dengan benar.

Menjalankan skrip Python ex02.py lagi akan memberi Anda output yang berbeda, seperti yang Anda lihat pada tangkapan layar di bawah ini.

Contoh 03: Mengekstrak Data Daftar menggunakan Selenium

Di bagian ini, saya akan menunjukkan contoh data daftar scrapping web dari situs web menggunakan driver Selenium Firefox Gecko dalam mode tanpa kepala.

Pertama, kunjungi generator nama-acak.info dari browser web Firefox. Situs web ini akan menghasilkan 10 nama acak setiap kali Anda memuat ulang halaman, seperti yang dapat Anda lihat pada tangkapan layar di bawah ini. Tujuan kami adalah mengekstrak nama acak ini menggunakan Selenium dalam mode tanpa kepala.

Untuk mengetahui struktur HTML daftar, Anda harus membuka Alat Pengembang Firefox. Untuk melakukannya, tekan tombol kanan mouse (RMB) pada halaman dan klik click Elemen Inspeksi (Q).

Alat Pengembang Firefox harus dibuka. Klik pada Periksa ikon () seperti yang ditandai pada tangkapan layar di bawah ini.

Kemudian, arahkan kursor ke daftar Nama acak. Daftar harus disorot seperti yang ditandai pada tangkapan layar di bawah. Kemudian, tekan tombol kiri mouse (LMB) untuk memilih daftar.

Kode HTML dari daftar harus disorot di in Inspektur tab dari Alat Pengembang Firefox. Di sini, daftar nama Acak ada di dalam div elemen. Itu div elemen memiliki kelas nama hasil. Di dalamnya, kami memiliki ol elemen dengan kelas nama Daftar nama. Di dalam ol elemen, masing-masing nama ada di a li elemen.

Dari sini kita dapat mengatakan bahwa untuk sampai ke li tag, kita harus mengikuti div.hasil > ol.Daftar nama > li

Jadi, pemilih CSS kita adalah div.hasil ol.namaDaftar li (ganti saja > tanda dengan spasi putih)

Untuk mengekstrak nama acak ini, buat skrip Python baru ex03.py dan ketikkan baris kode berikut di dalamnya.

dari selenium impor webdriver
dari selenium.webdriver.firefox.opsi impor Opsi
dari selenium.webdriver.umum.kunci impor Kunci
firefoxOptions = Opsi()
firefoxOptions.add_argument("-tanpa kepala")
browser = webdriver.Firefox(executable_path="./drivers/geckodriver", opsi = firefoxOptions)
peramban.get("http://random-name-generator.info/")
Daftar nama = browser =.find_elements_by_css_selector('div.hasil ol.Daftar nama li')
untuk nama di nameList:
cetak(nama.teks)
peramban.berhenti()

Setelah selesai, simpan ex03.py skrip python.

Baris 10 memuat situs web generator nama acak menggunakan peramban.Dapatkan() metode.

Baris 11 memilih daftar nama menggunakan peramban.find_elements_by_css_selector() metode. Metode ini menggunakan pemilih CSS div.hasil ol.namaDaftar li untuk menemukan daftar nama. Kemudian, daftar nama disimpan di Daftar nama variabel.

Pada baris 13 dan 14, a untuk loop digunakan untuk iterasi melalui Daftar nama Daftar li elemen. Dalam setiap iterasi, isi dari li elemen dicetak di konsol.

Sekarang, jalankan skrip Python ex03.py sebagai berikut:

$ python3 ex03.py

Seperti yang Anda lihat, skrip Python ex03.py mengambil semua nama acak dari halaman web.

Jika Anda menjalankan skrip untuk kedua kalinya, itu akan mengembalikan daftar nama acak baru, seperti yang Anda lihat pada tangkapan layar di bawah ini.

Kesimpulan:

Artikel ini akan membantu Anda memulai Selenium menggunakan browser web Firefox. Anda harus dapat mengatur proyek driver Selenium Firefox Gecko dengan cukup mudah dan menjalankan tes browser, otomatisasi web, dan tugas pengikisan web.

Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Jika Anda suka bermain game di Linux dengan gamepad alih-alih sistem input keyboard dan mouse biasa, ada beberapa aplikasi yang berguna untuk Anda. Ba...
Alat Berguna untuk Gamer Linux
Jika Anda suka bermain game di Linux, kemungkinan besar Anda telah menggunakan aplikasi dan utilitas seperti Wine, Lutris, dan OBS Studio untuk mening...
Game Remaster HD untuk Linux yang Belum Pernah Rilis Linux Sebelumnya
Banyak pengembang dan penerbit game datang dengan remaster HD dari game lama untuk memperpanjang umur waralaba, harap penggemar meminta kompatibilitas...