Cara Install Selenium dan GeckoDriver di Mac OS M1 serta Setting Proxy

By | February 6, 2024
Print Friendly, PDF & Email
754 Views

Selenium, sebagai alat otomatisasi web yang sangat populer, telah mendominasi lanskap pengujian perangkat lunak sejak awal tahun 2000-an. Selenium bermula pada tahun 2004 ketika seorang insinyur perangkat lunak di ThoughtWorks, Jason Huggins, menciptakan Selenium sebagai alat otomatisasi internal untuk menguji aplikasi web. Sejak saat itu, Selenium telah berkembang pesat, didukung oleh kontribusi besar dari komunitas pengembang dan pengujian perangkat lunak.

Selenium mendukung berbagai bahasa pemrograman seperti Java, Python, C#, Ruby, dan lainnya. Ini memberikan kebebasan kepada pengembang untuk memilih bahasa yang paling sesuai dengan keahlian mereka.

Selenium tidak terbatas pada satu browser saja. Dengan menggunakan driver tertentu seperti ChromeDriver, GeckoDriver, atau WebDriver lainnya, Selenium dapat berinteraksi dengan berbagai browser web populer seperti Chrome, Firefox, Edge, dan Safari.

Disini saya akan membahas Cara Install Selenium dan GeckoDriver agar bisa berjalan dengan baik di system operation Mac OS. Ada beberapa informasi awal yang kalian wajib lakukan. Untuk hal tersebut mari kita samakan beberapa library/component dengan versi dibawah ini.

 

Informasi OS yang digunakan yaitu

/opt/homebrew/bin/screenfetch: line 1803: / 1024 / 1024: syntax error: operand expected (error token is "/ 1024 / 1024")
                                             bejo@bejo-MacBook-Air.local
                                             OS: unknown 
 UUU     UUU NNN      NNN IIIII XXX     XXXX Kernel: arm64 Darwin 23.2.0
 UUU     UUU NNNN     NNN  III    XX   xXX   Uptime: 
 UUU     UUU NNNNN    NNN  III     XX xXX    Packages: Unknown
 UUU     UUU NNN NN   NNN  III      XXXX     Shell: 3515
 UUU     UUU NNN  NN  NNN  III      xXX      Disk:  /  ()
 UUU     UUU NNN   NN NNN  III     xXXXX     CPU: Unknown
 UUU     UUU NNN    NNNNN  III    xXX  XX    RAM: 
  UUUuuuUUU  NNN     NNNN  III   xXX    XX  
    UUUUU    NNN      NNN IIIII xXXx    xXXx

Versi Python yang digunakan

Python 3.11.5 (main, Sep 11 2023, 08:31:25) [Clang 14.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

menggunakan anaconda

conda 23.7.4

Install Selenium

Selenium adalah kerangka kerja perangkat lunak sumber terbuka yang digunakan untuk mengotomatisasi pengujian perangkat lunak dan otomatisasi tindakan pada browser web. Dikembangkan pertama kali oleh Jason Huggins pada tahun 2004 sebagai alat internal di ThoughtWorks, Selenium sejak itu telah berkembang menjadi proyek yang populer dan dikelola oleh Komunitas Selenium.

See also  Rotasi IP Address dengan Proxy dan Jaringan TOR

Fitur Utama Selenium:

  1. Otomatisasi Browser:
    • Selenium memungkinkan otomatisasi tindakan pada browser web seperti mengklik, mengisi formulir, menavigasi halaman, dan melakukan tugas-tugas lainnya yang biasanya dilakukan oleh pengguna manusia.
  2. Pendukung Berbagai Bahasa Pemrograman:
    • Selenium mendukung berbagai bahasa pemrograman seperti Java, Python, C#, Ruby, dan lainnya. Ini memberikan fleksibilitas kepada pengembang untuk memilih bahasa yang paling mereka sukai.
  3. Pendukung untuk Berbagai Browser:
    • Selenium mendukung berbagai browser web populer seperti Chrome, Firefox, Edge, Safari, dan lainnya. Masing-masing browser memerlukan driver khusus (seperti ChromeDriver atau GeckoDriver) untuk berkomunikasi dengan Selenium.
  4. Tes Berulang dan Otomatisasi Pengujian:
    • Selenium dapat digunakan untuk membuat dan menjalankan skrip pengujian otomatis, memungkinkan pengguna untuk mengulang pengujian secara otomatis dan memastikan konsistensi dalam pengembangan perangkat lunak.
  5. Integrasi dengan Framework Pengujian:
    • Selenium dapat diintegrasikan dengan berbagai kerangka pengujian seperti TestNG, JUnit, dan lainnya, memungkinkan pengembang untuk mengelola dan melaporkan hasil pengujian dengan lebih efisien.
  6. Dukungan untuk Protokol W3C WebDriver:
    • Selenium mengikuti protokol W3C WebDriver, standar industri untuk otomatisasi web. Ini memastikan konsistensi antara driver browser seperti ChromeDriver, GeckoDriver, dan browser web yang didukung.
  7. Otomatisasi Aplikasi Seluler:
    • Selenium Grid memungkinkan otomatisasi aplikasi seluler dengan menggabungkan kekuatan Selenium WebDriver dengan otomatisasi seluler seperti Appium.
  8. Proyek Sumber Terbuka:
    • Selenium bersifat sumber terbuka (open source), yang berarti bahwa kode sumbernya dapat diakses dan dimodifikasi oleh siapa saja. Hal ini telah menyebabkan pertumbuhan komunitas yang besar dan beragam.

Kita akan menggunakan versi selenium sebagai berikut

pip install selenium==4.11.0

Gecko Driver

GeckoDriver adalah driver browser yang dikembangkan oleh Mozilla untuk mendukung otomatisasi dalam Firefox menggunakan Selenium. Dalam konteks Selenium, driver adalah perangkat lunak yang memungkinkan Selenium berkomunikasi dengan browser. GeckoDriver, sebagai driver untuk Firefox, bertanggung jawab atas eksekusi perintah-perintah Selenium dan memastikan interaksi yang benar-benar terjadi pada browser Firefox.

Kenapa GeckoDriver Penting?

  1. Kompatibilitas dengan Firefox: GeckoDriver dibangun khusus untuk berinteraksi dengan Firefox. Ini memastikan bahwa otomatisasi yang dikembangkan dengan menggunakan Selenium dapat dijalankan dengan lancar pada browser ini.
  2. Protokol W3C WebDriver: GeckoDriver mengikuti protokol W3C WebDriver yang disepakati secara industri. Hal ini memastikan bahwa GeckoDriver dapat berintegrasi dengan alat otomatisasi web lainnya yang juga mengikuti standar ini.
  3. Mendukung Pengetesan dan Otomatisasi Web: GeckoDriver sangat diperlukan untuk pengujian otomatis dan pengembangan web. Ini memungkinkan pengembang untuk merancang dan menjalankan skenario pengujian otomatis pada situs web menggunakan Firefox.
  4. Pembaruan dan Perbaikan Keamanan: Dikembangkan oleh Mozilla, GeckoDriver secara teratur diperbarui untuk memastikan keselamatan dan keamanan. Pembaruan ini sering kali mencakup peningkatan kinerja, perbaikan bug, dan peningkatan keamanan.
See also  Install Metasploit di Ubuntu dan Modul Brute Force

Kalian bisa  download https://github.com/mozilla/geckodriver/releases

versi mac OS ARM: geckodriver-v0.34.0-macos-aarch64.tar.gz

geckodriver 0.34.0 (c44f0d09630a 2024-01-02 15:36 +0000)

The source code of this program is available from
testing/geckodriver in https://hg.mozilla.org/mozilla-central.

This program is subject to the terms of the Mozilla Public License 2.0.
You can obtain a copy of the license at https://mozilla.org/MPL/2.0/.

Setting Path gecko driver

Setelah di download, saya akan meletakan di /Users/bejo/Downloads kemudian biar dikenali oleh sistem jangan lupa untuk setting path dengan membuka terminal dan ketikan perintah berikut

export PATH="$PATH:/Users/bejo/Downloads"

Cara Install Selenium dan GeckoDriver akan kita coba dengan membuka URL berikut via python

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('https://softscients.com')

untuk perintah-perintah yang lain seperti mengisi form dan click button, kalian bisa cari internet.

Perbandingan selenium dengan mechanize

Selain selenium, kita juga bisa menggunakan library mechanize, kalian bisa baca artikel Bruteforce Password tersebut yang menggunakan library mechanize.

Selenium dan Mechanize adalah dua alat yang digunakan dalam konteks otomatisasi web, tetapi memiliki perbedaan mendasar dalam pendekatan, ruang lingkup, dan fungsionalitas mereka. Berikut adalah perbandingan antara Selenium dan Mechanize:

1. Pendekatan dan Ruang Lingkup:

  • Selenium:
    • Pendekatan Browser Automation: Selenium dirancang untuk mengotomatisasi interaksi pengguna pada browser. Ini mencakup tindakan seperti mengklik, mengisi formulir, menavigasi halaman web, dan sejenisnya.
    • Berbagai Browser: Selenium mendukung berbagai browser web, seperti Chrome, Firefox, Edge, dan Safari, melalui driver browser masing-masing.
    • JavaScript Execution: Selenium dapat menjalankan dan menguji JavaScript di browser.
  • Mechanize:
    • HTTP Browser: Mechanize bertindak sebagai “peramban HTTP” dan bekerja pada tingkat protokol HTTP. Ini tidak mengotomatisasi browser sepenuhnya, tetapi berfokus pada pengiriman permintaan HTTP dan pengelolaan respons.
    • Tidak Mendukung JavaScript: Mechanize tidak mendukung eksekusi JavaScript, sehingga tidak cocok untuk kasus pengujian atau otomatisasi yang melibatkan interaksi JavaScript di halaman web.
See also  Brute Password Attack IG dengan Rotasi Proxy IP Multi Threading dan Resume Password

2. Bahasa Pemrograman:

  • Selenium:
    • Fleksibel: Selenium mendukung berbagai bahasa pemrograman seperti Java, Python, C#, Ruby, dan lainnya. Ini memberikan fleksibilitas kepada pengembang untuk memilih bahasa yang paling sesuai dengan keahlian mereka.
  • Mechanize:
    • Python-Centric: Mechanize dikembangkan terutama untuk bahasa pemrograman Python. Meskipun ada implementasi serupa untuk bahasa lain, fokus utamanya adalah pada Python.

3. JavaScript dan HTML Parsing:

  • Selenium:
    • Parsing JavaScript: Selenium dapat menjalankan dan menguji JavaScript, memungkinkan interaksi dengan elemen-elemen yang dimodifikasi atau dibangun secara dinamis menggunakan JavaScript.
    • HTML Parsing: Selenium juga memiliki kemampuan untuk melakukan analisis HTML.
  • Mechanize:
    • Tidak Mendukung JavaScript: Mechanize tidak mendukung eksekusi JavaScript, sehingga tidak dapat berinteraksi dengan elemen-elemen yang dimodifikasi secara dinamis oleh JavaScript.
    • HTML Parsing: Mechanize fokus pada pengiriman permintaan HTTP dan pengelolaan respons, termasuk parsing HTML.

4. Kasus Penggunaan:

  • Selenium:
    • Pengujian Web dan Otomatisasi Pengguna: Selenium ideal untuk pengujian otomatis dan otomatisasi pengguna di lingkungan browser.
    • Scraping dan Automasi Web yang Melibatkan JavaScript: Cocok untuk skenario yang memerlukan interaksi dengan elemen-elemen yang dimodifikasi oleh JavaScript.
  • Mechanize:
    • Scraping Sederhana dan Interaksi HTTP: Mechanize dapat digunakan untuk scraping sederhana atau interaksi HTTP yang tidak memerlukan eksekusi JavaScript.
    • Manajemen Formulir dan Pengiriman Permintaan HTTP: Cocok untuk kasus penggunaan yang melibatkan pengisian formulir dan pengelolaan permintaan HTTP.

5. Ketersediaan dan Dukungan:

  • Selenium:
    • Proyek Global: Selenium adalah proyek open source yang dikelola secara global dengan dukungan komunitas yang besar.
    • Dokumentasi yang Kaya: Selenium memiliki dokumentasi yang kaya dan berbagai sumber daya daring.
  • Mechanize:
    • Pemeliharaan Lebih Terbatas: Mechanize mungkin tidak memiliki tingkat pemeliharaan atau dukungan komunitas sebesar Selenium.
    • Dokumentasi yang Tidak Sebanyak Selenium: Dokumentasi Mechanize mungkin tidak sekomprehensif Selenium

 

Selenium dengan Setting Proxy

Jika kalian menggunakan proxy pun, bisa kita atur/setting dengan pengaturan sebagai berikut

from selenium import webdriver
import json
import glob 
from datetime import date
from selenium.webdriver.common.by import By
from selenium.webdriver.common.proxy import Proxy,ProxyType
from selenium.webdriver.firefox.options import Options



options = Options()
options.set_preference("network.proxy.type", 1)
#options.binary_location = r"C:\Program Files\Mozilla Firefox\firefox.exe"
options.set_preference("network.proxy.http", "91.65.102.60")
options.set_preference("network.proxy.http_port",80)
#options.set_preference("network.proxy.ssl", "xx.xxx.xxx.xxx")
#options.set_preference("network.proxy.ssl_port", 8000)
    

driver = webdriver.Firefox(options = options)
url_master = "http://checkip.amazonaws.com"
driver.get(url_master)

 

Leave a Reply