Selenium

Otomatisasi Browser Menggunakan Selenium (Python)

Otomatisasi Browser Menggunakan Selenium (Python)
SELENIUM adalah alat berbasis web & sumber terbuka yang digunakan untuk mengontrol browser web melalui banyak bahasa pemrograman. Ini adalah alat pihak ketiga dan tersedia untuk banyak bahasa pemrograman (mis.g. Java, Python, C#, PHP dll.). Ini memiliki dukungan untuk hampir semua browser. Dalam tutorial ini, kita akan melihat cara menggunakan Selenium dengan Python karena Python menyediakan lingkungan yang nyaman untuk menggunakan alat ini. Selenium API untuk Python memungkinkan program Anda secara langsung mengontrol browser Anda dengan cara yang sama seperti yang dilakukan manusia. Itu dapat membuka tab baru untuk Anda, mengisi informasi Anda, mengirimkan formulir, mengklik tautan yang berbeda dan tindakan serupa lainnya. Di sini kita akan melihat bagaimana kita mengotomatisasi browser web kita menggunakan Selenium dengan Python.

Instalasi Selenium

Sebelum menggunakan SELENIUM modul dengan python, kita harus menginstalnya. Jalankan perintah berikut di terminal untuk menginstalnya.

pip instal selenium

ATAU

pip3 instal selenium

Ini akan menginstal SELENIUM modul dan sekarang siap digunakan.

Driver Web

Sebelum mengotomatisasi browser web menggunakan modul SELENIUM, diperlukan driver web dari browser yang dipilih. Untuk mengotomatiskan Browser Chrome, kita harus memiliki driver web Chrome. Jalur, tempat file driver web ditempatkan, diteruskan sebagai argumen. Driver web berinteraksi dengan browser web melalui protokol. Buka tautan berikut untuk mengunduh  Driver web dari berbagai browser.

https://www.seleniumhq.org/unduh/

Mulai

Setelah menginstal modul yang diperlukan, Anda dapat membuka python CLI dan mulai bermain dengan browser Anda. Jadi mari impor webdriver dan modul lainnya terlebih dahulu, modul dan kelas ini akan membiarkan program Python Anda mengirim penekanan tombol dan info lainnya ke browser Anda.

C:\Users\Usama Azad>python
Python 3.6.4 (v3.6.4:d48eceb, 19 Des 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] di win32
Ketik "bantuan", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut.
>>> dari selenium impor webdriver
>>> dari selenium.webdriver.umum.kunci impor Kunci
#path ke driver chrome Anda
>>> driver = webdriver.Chrome('C:\chromedriver')

Ini akan membuka jendela browser Chrome baru untuk Anda. Sekarang Anda bisa mendapatkan Selenium untuk pergi ke situs web apa pun menggunakan .dapatkan () metode. Metode ini membuka situs web dan akan menunggunya dimuat, lalu Anda dapat memasukkan perintah berikutnya.

>>> sopir.dapatkan("https://www.facebook.com")

Cara Menemukan Elemen di Halaman Web

Kita dapat menemukan elemen tertentu pada halaman web dengan metode berikut.

Menemukan Elemen menggunakan Selenium

Untuk menemukan elemen pada halaman web, kami menggunakan 'temukan_elemen' metode. Berikut ini adalah 'temukan_elemen' metode yang tersedia di SELENIUM.

Dengan menggunakan metode di atas, kami dapat menemukan elemen di halaman web dan menggunakannya dalam kode otomatisasi kami.

Mengklik Elemen halaman web yang berbeda

click() metode di Selenium dapat digunakan untuk mengklik tautan dan elemen tombol yang berbeda yang Anda temukan menggunakan metode di atas. Misalnya, Anda ingin mengklik "Akun yang terlupakan"?” di halaman Facebook

>>> link_button = driver.find_element_by_link_text('Akun yang terlupakan?')
>>> link_button.klik()

Kirim Kunci Khusus

Selenium juga memiliki modul yang memungkinkan Anda mengirim kunci khusus (mis.g, Enter, Escape, Page down, page up, dll) saat menjelajahi web. Anda perlu mengimpor modul ini menggunakan perintah berikut

>>> dari selenium.webdriver.umum.kunci impor Kunci

Misalnya, Anda sedang membaca artikel di Wikipedia tentang sejarah Amerika Serikat, tetapi Anda terlalu malas untuk menekan tombol Panah BAWAH setelah beberapa saat. Anda dapat mengotomatisasi dengan mengirimkan kunci ini ke browser menggunakan Selenium

dari selenium impor webdriver
dari selenium.webdriver.umum.kunci impor Kunci
waktu impor
driver = driver web.Chrome('C:\chromedriver')
#Buka link artikel menggunakan metode get
sopir.dapatkan("https://en.wikipedia.org/wiki/United_States")
#Mulai dari awal halaman
elemen = pengemudi.find_element_by_tag_name('html')
sementara Benar:
 
waktu.tidur(5)
elemen.send_keys(Tombol.TURUN)

Cara Mengotomatiskan Peramban

Di bagian ini kita akan melihat cara mengotomatisasi browser web kita dengan bantuan beberapa kasus penggunaan.

Masuk ke Situs Web Media Sosial Secara Otomatis

Dengan otomatisasi web, Anda dapat dengan mudah membuat proses masuk otomatis. Jika Anda memeriksa situs web media sosial Anda pada waktu tertentu (misalnya jam 8 malam) secara teratur, maka ada baiknya untuk mengotomatiskan proses ini. Berikut ini adalah kode untuk mengotomatiskan proses login dua situs media sosial 'facebook' dan 'twitter' menggunakan SELENIUM modul dengan Python.

# mengimpor webdriver dari modul Selenium
dari selenium impor webdriver
 
# mengimpor Kunci khusus dari selenium
dari selenium.webdriver.umum.kunci impor Kunci
 
# membuat objek 'driver' untuk 'Google-Chrome'
driver = driver web.Chrome('jalur ke driver Chrome')
 
#memaksimalkan jendela
sopir.maksimalkan_jendela()
 
#buka facebook
sopir.Dapatkan('http://www.facebook.com')
 
# menemukan elemen 'Email atau Telepon' menggunakan atribut 'id'
nama pengguna = pengemudi.find_element_by_id('email')
 
# Memasukkan nama pengguna atau email untuk facebook
nama pengguna.send_keys('Masukkan Nama Pengguna/Email')
 
# menemukan elemen 'Kata Sandi' menggunakan atribut 'id'
kata sandi = driver.find_element_by_id('lulus')
 
# memasukkan kata sandi untuk facebook
kata sandi.send_keys("Masukkan Kata Sandi")
 
# menemukan elemen 'tombol masuk' menggunakan atribut 'id' dan menekan 'Enter'
sopir.find_element_by_id('u_0_b').send_keys(Tombol.MEMASUKKAN)
 
#membuka tab baru untuk twitter
sopir.execute_script("jendela.buka('http://www.Indonesia.com', 'tab2');")
 
# beralih ke tab baru
sopir.switch_to_window('tab2')
 
#menemukan elemen 'masuk' dan mengkliknya
sopir.find_element_by_xpath('//*[@id="doc"]/div/div[1]/div[1]/div[2]/div[1]').klik()
 
# menemukan elemen 'Telepon, email, atau nama pengguna'
nama pengguna = pengemudi.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/
fieldset/div[1]/input')
 
# memasukkan nama pengguna untuk twitter
nama pengguna.send_keys('Masukkan Nama Pengguna')
 
# menemukan elemen 'Kata Sandi'
kata sandi = driver.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/
fieldset/div[2]/input')
# memasukkan kata sandi untuk twitter
kata sandi.send_keys('Masukkan Kata Sandi')
# menemukan tombol 'masuk' dan mengkliknya
sopir.find_element_by_xpath('//*[@id="page-container"]/div/div[1]/form/div[2]/button')
.klik()

Kode di atas mengotomatiskan browser untuk masuk ke situs web media sosial. Pertama-tama kami membuat objek dari browser favorit kami. Dalam kasus penggunaan ini, kami telah menggunakan 'Chrome' sebagai browser. Untuk membuat objek, kami melewati jalur 'chromedriver' kami sebagai argumen. Kemudian kami memasukkan url facebook dan masuk ke Facebook dengan memilih elemen dan memasukkan nama pengguna dan kata sandi.

Setelah ini kami membuka tab baru dan memasukkan url twitter. Setelah ini kami beralih ke tab baru karena kontrol kode masih di tab pertama meskipun tab kedua terbuka. Kemudian kami masuk ke twitter dengan memilih elemen dan memasukkan nama pengguna dan kata sandi.

Otomatisasi Belanja Online

Contoh bagus lainnya dari otomatisasi browser adalah belanja online. Misal mau beli kamera online tapi harganya terlalu mahal. Anda memeriksa setiap hari apakah harganya dalam kisaran Anda atau tidak. Tugas ini dapat diotomatisasi menggunakan SELENIUM dan Anda dapat menghindari pengecekan harga setiap hari. Kode berikut akan memberi tahu Anda melalui surat apakah harga produk yang Anda inginkan terjangkau atau tidak. Jika produk yang Anda inginkan sedang dijual, program akan memberi tahu Anda melalui email.

# mengimpor webdriver dari modul Selenium
dari selenium impor webdriver
 
# mengimpor modul smtplib untuk mengirim email
impor smtplib
 
# mendefinisikan fungsi surat untuk menginformasikan melalui email
def mail():
 
# membuat koneksi ke server gmail dengan nama domain dan nomor port. 
Ini berbeda di setiap penyedia email
koneksi = smtplib.SMTP('smtp.gmail.com',587)
 
# menyapa server
koneksi.halo()
 
# memulai koneksi TLS terenkripsi
koneksi.mulai ()
 
# masuk ke server gmail dengan alamat utama dan kata sandi Anda
koneksi.login('alamat email pengirim', 'password')
 
# mengirim email ke diri Anda sendiri yang memberi tahu Anda tentang harga kamera
koneksi.sendmail('alamat surat pengirim', 'alamat surat penerima',
'Subjek: Anda dapat Membeli Kamera')
 
# mengakhiri koneksi
koneksi.berhenti()
# fungsi email berakhir di sini
 
# meluncurkan google chrome dengan menyediakan jalur chromedriver sebagai argumen
driver = driver web.Chrome('jalur ke chromedriver')
 
# meminimalkan jendela chrome
sopir.meminimalkan_jendela()
 
# pembukaan draz.situs pk
sopir.Dapatkan('https://www.daraz.pk/')
 
# menemukan elemen bilah pencarian menggunakan atribut id untuk mencari kamera
searchBar = driver.temukan_elemen_oleh_id('q')
 
#menulis kamera di bilah pencarian
bar pencarian.send_keys('kamera')
 
#menemukan elemen tombol pencarian menggunakan xpath elemen
cari = sopir.find_element_by_xpath('//*[@id="topActionHeader"]/div/div[2]/div/div[2]
/form/div/div[2]/button')
 
#mengklik tombol pencarian
Cari.klik()
 
# menemukan elemen produk yang Anda inginkan menggunakan atribut xpath
produk = pengemudi.find_element_by_xpath('//*[@id="root"]/div/div[3]/div[1]/div/div[1]
/div[2]/div[1]/div/div/div[2]/div[2]/a')
 
# mengklik produk yang Anda inginkan
produk.klik()
 
# menemukan elemen harga menggunakan atribut xpath
harga = sopir.find_element_by_xpath('//*[@id="module_product_price_1"]/div/div/span')
 
# mengekstrak teks dari elemen harga. Ini memberikan harga produk seperti 'Rs. 24.500'
harga = harga.teks
 
# mengubah harga menjadi string
Harga = str(harga)
 
# mendefinisikan array kosong. Ini akan digunakan dalam mengekstraksi angka dari harga seperti '24500'
bentuk 'Rs. 24.500'
jumlah = []
 
# membaca semua entri string harga satu per satu menggunakan for loop
untuk x harga:
 
# memeriksa apakah entri itu digit atau tidak seperti yang kita inginkan hanya digit dalam harga
jika x.angka():
 
# hanya menambahkan digit ke daftar angka
nomor.tambahkan (x)
 
# bergabung dengan semua entri daftar num. Sekarang harganya adalah string yang hanya berisi angka
harga = ".bergabung (jumlah)
 
# mengubah string harga menjadi bilangan bulat
harga = int(harga)
 
# cek harga terjangkau atau tidak
jika harga <= 25000:
 
# memanggil fungsi email untuk memberi tahu Anda tentang harganya
surat()
 
#menutup browser
sopir.berhenti()

Kode di atas membuka daraz.situs pk dan mencari kamera dan memberi tahu Anda melalui email jika harganya terjangkau. Pertama-tama kita impor SELENIUM dan SMTPLIB modul. Kemudian kami mendefinisikan fungsi 'mail' yang mengirimi Anda surat yang memberi tahu Anda bahwa harganya terjangkau, saat dipanggil.

Setelah ini kami membuka browser chrome menggunakan chromedriver dan mencari 'daraz.pk'. Kemudian kami menemukan produk yang kami inginkan menggunakan elemen dan atributnya. Bagaimana elemen ditemukan dan ditempatkan, telah dijelaskan di atas. Harga yang kami dapatkan adalah string jadi kami mengubah string ini menjadi integer dan kemudian memeriksa apakah harganya terjangkau atau tidak. Jika harga terjangkau maka hubungi fungsi 'mail'.

Membuat pekerjaan Cron

Di atas dua skrip otomatisasi diperlukan untuk dijalankan sekali sehari pada waktu tertentu. Kita bisa mengatur ini menggunakan cron job. Tugas, yang ditambahkan ke crontab dapat dijalankan pada waktu tertentu berulang kali. Untuk menambahkan tugas di atas di crontab, pertama-tama jalankan perintah berikut di Terminal Linux.

[dilindungi email]:~$ crontab -e

Perintah di atas akan membuka file crontab untuk diedit. Di akhir file masukkan perintah berikut.

0 8 * * * python /path/ke/python/script

Kami melihat entri sebelum perintah dari kanan ke kiri.

Jadi perintah ini akan dijalankan pada jam 8 setiap hari.

Kesimpulan

Dalam artikel ini, kami membahas bagaimana Anda dapat menggunakan SELENIUM bersama dengan Python untuk mengotomatisasi browser Anda menggunakan teknik yang berbeda. Anda dapat mengotomatiskan pekerjaan rutin harian Anda, mengisi formulir, mengunduh barang-barang Anda, dan banyak hal menggunakannya. Kami hanya membahas dua contoh di sini, tetapi Anda dapat mengotomatiskan setiap hal yang dapat dilakukan manusia secara manual dengan browser.

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...
Cara Menggunakan AutoKey untuk Mengotomatiskan Game Linux
AutoKey adalah utilitas otomatisasi desktop untuk Linux dan X11, diprogram dengan Python 3, GTK dan Qt. Dengan menggunakan skrip dan fungsionalitas MA...