Selenium

Menggunakan Selenium dengan Firefox Driver

Menggunakan Selenium dengan Firefox Driver
Selenium adalah alat yang hebat untuk ujian penyemak imbas, automasi web, dan pengikisan web. Selenium dapat mengawal sebahagian besar penyemak imbas web moden. i.e., Firefox, Chrome, Chromium, Opera, Apple Safari. Untuk mengawal penyemak imbas, Selenium memerlukan alat yang dipanggil Pemacu Web. Sebilangan besar vendor penyemak imbas moden menyediakan perisian pemacu Web untuk penyemak imbas web mereka.

Untuk mengawal penyemak imbas web Mozilla Firefox dari Selenium, anda harus menggunakan Pemacu Web Gecko.

Dalam artikel ini, saya akan menunjukkan kepada anda cara mengatur Selenium untuk menjalankan ujian penyemak imbas, automasi web, tugas mengikis web menggunakan penyemak imbas web Mozilla Firefox. Oleh itu, mari kita mulakan.

Prasyarat:

Untuk mencuba perintah dan contoh artikel ini, anda mesti ada,

1) Sebaran Linux (sebaiknya Ubuntu) dipasang di komputer anda.
2) Python 3 dipasang pada komputer anda.
3) PIP 3 dipasang pada komputer anda.
4) Mozilla Firefox dipasang pada komputer anda.

Anda boleh menemui banyak artikel mengenai topik ini di LinuxHint.com. Pastikan anda memeriksanya jika anda memerlukan bantuan.

Menyiapkan Persekitaran Maya Python 3 untuk Projek:

Persekitaran Maya Python digunakan untuk membuat direktori projek Python yang terpencil. Modul Python yang anda pasang menggunakan PIP akan dipasang di direktori projek sahaja, bukan di peringkat global.

Python virtualenv modul digunakan untuk menguruskan persekitaran maya Python.

Anda boleh memasang Python virtualenv modul secara global menggunakan PIP 3 seperti berikut:

$ sudo pip3 pasang virtualenv

Python virtualenv harus dipasang.

Buat direktori projek selenium-firefox / dalam direktori kerja semasa anda seperti berikut:

$ mkdir -pv selenium-firefox / pemacu

Navigasi ke direktori projek yang baru anda buat selenium-firefox / seperti berikut:

$ cd selenium-firefox /

Buat persekitaran maya Python di direktori projek anda dengan arahan berikut:

$ virtualenv .venv

Persekitaran maya Python harus dibuat dalam direktori projek anda.

Aktifkan persekitaran maya Python dari direktori projek anda dengan arahan berikut:

sumber $ .env / bin / aktifkan

Memasang Selenium Python Library:

Perpustakaan Selenium boleh didapati di repositori Python PyPI rasmi.

Anda boleh memasang perpustakaan Selenium Python menggunakan PIP 3 seperti berikut:

$ pip3 memasang selenium

Perpustakaan Selenium Python harus dipasang.

Memasang Pemacu Firefox Gecko:

Untuk memuat turun Pemandu Gecko Firefox, lawati halaman pelepasan mozilla / geckodriver GitHub dari penyemak imbas web kegemaran anda.

Seperti yang anda lihat, v0.26.0 adalah versi terbaru Firefox Gecko Driver pada masa penulisan ini.

Untuk memuat turun Pemacu Gecko Firefox, tatal ke bawah sedikit dan klik pada tar geckodriver Linux.arkib gz bergantung pada seni bina sistem operasi anda.

Sekiranya anda menggunakan sistem operasi 32-bit, klik pada geckodriver-v0.26.0-linux32.tar.gz pautan.

Sekiranya anda menggunakan sistem operasi 64-bit, klik pada geckodriver-v0.26.0-linuxx64.tar.gz pautan.

Saya akan memuat turun versi 64-bit Firefox Gecko Driver.

Penyemak imbas anda akan meminta anda menyimpan arkib. Pilih Simpan fail dan klik pada okey.

Pemandu Firefox Gecko harus dimuat turun.

Arkib Pemandu Gecko Firefox harus dimuat turun di ~ / Muat turun direktori.

Anda boleh mengekstrak geckodriver-v0.26.0-linux64.tar.gz arkib dari ~ / Muat turun direktori ke pemandu / direktori projek anda dengan arahan berikut:

$ tar -xzf ~ / Muat turun / geckodriver-v0.26.0-linux64.tar.pemacu gz -C /

Setelah arkib Pemandu Gecko Firefox diekstrak, fail binari baru tokek harus dibuat di pemandu / direktori projek anda, seperti yang anda lihat dalam tangkapan skrin di bawah.

Bermula dengan Selenium menggunakan Pemacu Firefox Gecko:

Pada bahagian ini, saya akan menunjukkan kepada anda cara menyiapkan skrip Selenium Python pertama anda untuk menguji sama ada Firefox Gecko Driver berfungsi.

Pertama, buat skrip Python baru ex00.py dalam direktori projek anda dan taipkan baris berikut di dalamnya.

dari pemacu web import selenium
dari selenium.pemacu laman web.biasa.kunci import Kekunci
penyemak imbas = pemacu web.Firefox (boleh dilaksanakan_path = "./ pemandu / tokek ")
penyemak imbas.dapatkan ('https: // www.linuxhint.com ')
cetak ('Tajuk:% s'% penyemak imbas.tajuk)
penyemak imbas.berhenti ()

Setelah selesai, simpan ex00.py Skrip Python.

Baris 1 dan 2 mengimport semua komponen yang diperlukan dari selenium Perpustakaan Python.

Baris 4 membuat objek pemacu web Firefox menggunakan pemacu laman web.Firefox () kaedah dan menyimpannya dalam a penyemak imbas pemboleh ubah. The jalan yang boleh dilaksanakan argumen digunakan untuk memberitahu pemacu web di mana untuk mencari binari Pemacu Firefox Gecko. Dalam kes ini, yang tokek binari dari pemandu / direktori projek.

Pada baris 6, penyemak imbas.dapatkan () kaedah memuatkan linuxhint.com dalam penyemak imbas web Firefox.

Setelah laman web selesai dimuat, baris 7 mencetak tajuk laman web, di sini, penyemak imbas.tajuk harta tanah digunakan untuk mengakses tajuk laman web.

Baris 8 menutup penyemak imbas web Firefox menggunakan penyemak imbas.berhenti () kaedah.

Anda boleh menjalankan skrip Python ex00.py dengan arahan berikut:

$ python3 ex00.py

Selenium harus membuka penyemak imbas web Firefox dan mengunjungi linuxhint.laman web com secara automatik.

Setelah halaman dimuat, ia akan mencetak tajuk laman web di konsol, dan penyemak imbas web akan ditutup secara automatik.

Jadi, Selenium berfungsi dengan betul dengan pemandu Firefox Gecko.

Contoh 01: Menjalankan Firefox dalam Headless Mode menggunakan Selenium

Anda juga boleh menjalankan Selenium dengan Firefox Gecko Driver dalam mod tanpa kepala. Mod tanpa kepala Selenium Firefox tidak memerlukan antara muka pengguna grafik yang dipasang di komputer anda. Jadi, anda akan dapat menjalankan Selenium Firefox di mana-mana pelayan tanpa kepala Linux.

Pertama, buat skrip Python baru ex01.py dalam direktori projek anda dan taipkan baris kod berikut di dalamnya.

dari pemacu web import selenium
dari selenium.pemacu laman web.firefox.pilihan import Pilihan
dari selenium.pemacu laman web.biasa.kunci import Kekunci
firefoxOptions = Pilihan ()
firefoxOptions.add_argument ("- tanpa kepala")
penyemak imbas = pemacu web.Firefox (boleh dilaksanakan_path = "./ driver / geckodriver ", options = firefoxOptions)
penyemak imbas.dapatkan ('https: // www.linuxhint.com ')
cetak ('Tajuk:% s'% penyemak imbas.tajuk)
penyemak imbas.berhenti ()

Setelah selesai, simpan ex01.py Skrip Python.

Baris 1 dan baris 3 sama dengan baris 1 dan baris 2 dari ex00.py Skrip Python.

Baris 2 mengimport Firefox Pilihan daripada selenium perpustakaan.

Baris 5 membuat objek Opsi firefox dan menyimpannya di firefoxOptions pemboleh ubah.

Baris 6 menggunakan firefoxOptions.add_argument () kaedah untuk menambah -tanpa kepala Bendera baris arahan Firefox ke firefoxOptions objek.

Pada baris 8, pilihan hujah digunakan untuk melepasi firefoxOptions semasa memulakan pemacu web Firefox menggunakan pemacu laman web.Firefox () kaedah.

Selebihnya garis ex01.py skrip adalah sama dengan ex00.py.

Anda boleh menjalankan skrip Python ex01.py dengan arahan berikut:

$ python3 ex01.py

Seperti yang anda lihat, tajuk laman web (linuxhint.com) dicetak pada konsol tanpa membuka versi grafik penyemak imbas web Firefox.

Seperti yang anda lihat, Selenium juga mengusahakan persekitaran tanpa kepala Ubuntu di mana saya tidak memasang antara muka pengguna grafik.

Sekarang anda tahu bagaimana untuk lulus -tanpa kepala Bendera / pilihan baris perintah Firefox menggunakan pemacu Selenium Firefox Gecko, anda juga boleh meneruskan bendera / pilihan baris perintah Firefox lain.

Anda boleh mendapatkan semua bendera / pilihan baris perintah Firefox yang disokong dalam pilihan baris Perintah - Mozilla | Halaman MDN.

Contoh 02: Mengekstrak Lorem Ipsum menggunakan Selenium

Pada bahagian ini, saya akan menunjukkan kepada anda cara melakukan pemecahan web asas menggunakan Pemacu Selenium Firefox Gecko.

Pertama, lawati halaman Lorem Ipsum Generator dari penyemak imbas web Firefox. Seperti yang anda lihat, halaman menghasilkan 5 perenggan rawak. Mari kita keluarkan semua teks yang dihasilkan (semua 5 perenggan) dari halaman ini.

Sebelum anda mula mengekstrak maklumat dari laman web, anda mesti mengetahui struktur HTML kandungan laman web tersebut.

Anda dapat dengan mudah mencari struktur HTML dari kandungan yang ingin anda ekstrak menggunakan Alat Pembangun Firefox. Untuk membuka Alat Pembangun Firefox, tekan butang kanan tetikus (RMB) di halaman dan klik Periksa Elemen (Q).

Alat Pembangun Firefox hendaklah dibuka. Klik pada Periksa ikon () seperti yang ditandakan pada tangkapan skrin di bawah.

Arahkan kursor ke perenggan pertama, seperti yang ditunjukkan dalam tangkapan skrin di bawah. Kemudian, tekan butang kiri tetikus (LMB) untuk memilihnya.

Struktur HTML dari perenggan-perenggan tersebut harus ditampilkan di Periksa tab dari Alat Pembangun Firefox. Seperti yang anda lihat, perenggan lorem ipsum yang dihasilkan terdapat di dalam a div tag yang mempunyai ID bibir.

Untuk mengekstrak perenggan lorem ipsum menggunakan Selenium Firefox Gecko Driver, buat skrip Python baru ex02.py dalam direktori projek anda dan taipkan baris kod berikut di dalamnya.

dari pemacu web import selenium
dari selenium.pemacu laman web.firefox.pilihan import Pilihan
dari selenium.pemacu laman web.biasa.kunci import Kekunci
firefoxOptions = Pilihan ()
firefoxOptions.add_argument ("- tanpa kepala")
penyemak imbas = pemacu web.Firefox (boleh dilaksanakan_path = "./ driver / geckodriver ", options = firefoxOptions)
penyemak imbas.dapatkan ('https: // www.bibir.com / suapan / html ')
lipsum = penyemak imbas.find_element_by_id ('bibirum')
mencetak (bibir.teks)
penyemak imbas.berhenti ()

Setelah selesai, simpan ex02.py Skrip Python.

Baris 10 memuatkan halaman penjana lorem ipsum menggunakan penyemak imbas.dapatkan () kaedah.

Kandungan lorem ipsum ada di dalam a div tag dengan id bibir. Baris 12 menggunakan penyemak imbas.cari_elemen_by_id () kaedah untuk memilihnya dari laman web dan menyimpannya di bibir pemboleh ubah.

Baris 13 mencetak kandungan lorem ipsum yang dihasilkan pada konsol. Di sini, teks harta tanah digunakan untuk mengakses kandungan div elemen dengan id bibir.

Sekarang, jalankan skrip Python ex02.py seperti berikut:

$ python3 ex02.py

Seperti yang anda lihat, Selenium mengekstrak kandungan lorem ipsum dari laman web dengan betul.

Menjalankan skrip Python ex02.py sekali lagi akan memberi anda output yang berbeza, seperti yang anda lihat dalam tangkapan skrin di bawah.

Contoh 03: Mengekstrak Data Senarai menggunakan Selenium

Pada bahagian ini, saya akan menunjukkan kepada anda contoh data senarai pemecahan web dari laman web yang menggunakan pemacu Selenium Firefox Gecko dalam mod tanpa kepala.

Mula-mula, lawati penjana nama rawak.maklumat dari penyemak imbas web Firefox. Laman web ini akan menghasilkan 10 nama rawak setiap kali anda memuatkan semula halaman, seperti yang anda lihat dalam tangkapan skrin di bawah. Tujuan kami adalah untuk mengekstrak nama-nama rawak ini menggunakan Selenium dalam mod tanpa kepala.

Untuk mengetahui struktur HTML senarai, anda harus membuka Alat Pembangun Firefox. Untuk melakukannya, tekan butang kanan tetikus (RMB) di halaman dan klik Periksa Elemen (Q).

Alat Pembangun Firefox hendaklah dibuka. Klik pada Periksa ikon () seperti yang ditandakan pada tangkapan skrin di bawah.

Kemudian, arahkan kursor ke senarai Nama rawak. Senarai harus diserlahkan seperti yang ditandakan pada tangkapan skrin di bawah. Kemudian, tekan butang kiri tetikus (LMB) untuk memilih senarai.

Kod HTML senarai harus diserlahkan di Pemeriksa tab dari Alat Pembangun Firefox. Di sini, senarai nama Rawak ada di dalam a div unsur. The div unsur mempunyai kelas nama hasil. Di dalamnya, kita mempunyai ol unsur dengan kelas nama senarai nama. Di dalam ol unsur, setiap nama berada dalam a li unsur.

Dari ini kita dapat mengatakan bahawa untuk sampai ke li tag, kita mesti ikut div.hasil> ol.senarai nama> li

Jadi, pemilih CSS kami akan menjadi div.hasil ol.namaSenarai li (ganti sahaja > tanda dengan ruang kosong)

Untuk mengekstrak nama rawak ini, buat skrip Python baru ex03.py dan taipkan baris kod berikut di dalamnya.

dari pemacu web import selenium
dari selenium.pemacu laman web.firefox.pilihan import Pilihan
dari selenium.pemacu laman web.biasa.kunci import Kekunci
firefoxOptions = Pilihan ()
firefoxOptions.add_argument ("- tanpa kepala")
penyemak imbas = pemacu web.Firefox (boleh dilaksanakan_path = "./ driver / geckodriver ", options = firefoxOptions)
penyemak imbas.dapatkan ("http: // rawak-nama-penjana.maklumat / ")
nameList = penyemak imbas.find_elements_by_css_selector ('div.hasil ol.namaSenarai li ')
untuk nama dalam namaSenarai:
mencetak (nama.teks)
penyemak imbas.berhenti ()

Setelah selesai, simpan ex03.py Skrip Python.

Baris 10 memuatkan laman web penjana nama rawak menggunakan penyemak imbas.dapatkan () kaedah.

Baris 11 memilih senarai nama menggunakan penyemak imbas.cari_elemen_by_css_selector () kaedah. Kaedah ini menggunakan pemilih CSS div.hasil ol.namaSenarai li untuk mencari senarai nama. Kemudian, senarai nama disimpan di senarai nama pemboleh ubah.

Dalam baris 13 dan 14, a untuk gelung digunakan untuk melakukan lelaran melalui senarai nama senarai li unsur. Dalam setiap lelaran, kandungan li elemen dicetak pada konsol.

Sekarang, jalankan skrip Python ex03.py seperti berikut:

$ python3 ex03.py

Seperti yang anda lihat, skrip Python ex03.py mengambil semua nama rawak dari laman web.

Sekiranya anda menjalankan skrip kali kedua, ia akan mengembalikan senarai nama rawak baru, seperti yang anda lihat dalam tangkapan skrin di bawah.

Kesimpulan:

Artikel ini akan membantu anda memulakan Selenium menggunakan penyemak imbas web Firefox. Anda seharusnya dapat membuat projek pemacu Selenium Firefox Gecko dengan mudah dan menjalankan ujian penyemak imbas, automasi web, dan tugas mengikis web anda.

Battle For Wesnoth 1.13.6 Pembangunan Dikeluarkan
Battle For Wesnoth 1.13.6 dilancarkan bulan lalu, adalah rilis pengembangan keenam di 1.13.siri x dan memberikan sejumlah penambahbaikan, terutamanya ...
Cara Memasang League Of Legends di Ubuntu 14.04
Sekiranya anda peminat League of Legends, maka ini adalah peluang bagi anda untuk menguji menjalankan League of Legends. Perhatikan bahawa LOL disokon...
Pasang permainan Strategi OpenRA terkini di Ubuntu Linux
OpenRA adalah mesin permainan Strategi Masa Nyata / Bebas yang mencipta semula permainan Westwood awal seperti Command & Conquer klasik: Makluman Mera...