Python Web üzerinde formlar, kullanıcıdan veri toplamak için yaygın olarak kullanılan araçlardır. Bu formlar, kaydolma, giriş yapma, ödeme yapma ve daha birçok işlemi gerçekleştirmek için kullanılabilir. Ancak, manuel olarak bu formları doldurmak zaman alıcı olabilir. Neyse ki, Selenium kullanarak formları otomatikleştirebilirsiniz.
Selenium, Python gibi dillerle kullanılabilen popüler bir web otomasyon aracıdır. Bu yazıda, Selenium kullanarak otomatik form doldurma işlemi için bir Python scripti yazacağız.
Selenium, web tarayıcılarını otomatikleştirmek için kullanılan açık kaynaklı bir araçtır. Web sayfalarını simüle eder ve tıklamalar, yazı yazma gibi kullanıcı etkileşimlerini otomatikleştirir. Python’da Selenium, testler yapmanın yanı sıra web sayfalarını analiz etme ve verileri çekme gibi işlemler için de kullanılır.
Aşağıdaki adımlarla Selenium kullanarak bir formu nasıl otomatik doldurabileceğimizi inceleyeceğiz:
pip install selenium
Aşağıda, Selenium kullanarak basit bir web formunu nasıl otomatik dolduracağınızı gösteren bir Python scripti bulabilirsiniz. Bu örnekte, örnek bir kayıt formunu dolduracağız.
Diyelim ki, aşağıdaki gibi bir formunuz var:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
# WebDriver yolunu belirtin (ChromeDriver)
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
# Web sitesine gidin
driver.get("https://example.com/register") # Kendi form sayfanızın URL'sini kullanın
# Formdaki öğeleri bulmak
# Ad alanını bulun ve adınızı yazın
name_field = driver.find_element(By.NAME, "name")
name_field.send_keys("John Doe")
# E-posta alanını bulun ve e-posta adresinizi yazın
email_field = driver.find_element(By.NAME, "email")
email_field.send_keys("johndoe@example.com")
# Şifre alanını bulun ve şifrenizi yazın
password_field = driver.find_element(By.NAME, "password")
password_field.send_keys("securepassword123")
# Cinsiyet radio butonunu seçin
gender_radio = driver.find_element(By.ID, "gender_male")
gender_radio.click()
# Hobi checkbox'ını işaretleyin
hobby_checkbox = driver.find_element(By.ID, "hobby_sports")
hobby_checkbox.click()
# Formu gönderin
submit_button = driver.find_element(By.ID, "submit_button")
submit_button.click()
# 5 saniye bekleyin
time.sleep(5)
# İşlem tamamlandığında tarayıcıyı kapatın
driver.quit()
webdriver.Chrome()
fonksiyonunu kullanıyoruz.find_element
: Formdaki öğelere erişmek için kullanılan yöntemdir. Bu metodla form elemanlarını bulup onlarla etkileşime geçebilirsiniz. Burada By.NAME
, By.ID
, By.XPATH
gibi seçiciler kullanarak öğeleri buluyoruz.send_keys()
: Belirtilen metni bir giriş alanına (input) gönderir.click()
: Bir öğe üzerinde tıklama işlemi yapar (örneğin, radio butonları veya submit butonları için kullanılır).time.sleep()
: Sayfanın işlemi tamamlaması için belirli bir süre bekleriz. Bu, işlemin doğru bir şekilde yapılabilmesi için önemlidir.'/path/to/chromedriver'
kısmına, sisteminize uygun olan ChromeDriver yolunu belirtmeniz gerekiyor."https://example.com/register"
olarak belirtilen form sayfası URL’sini, otomatik doldurmak istediğiniz gerçek form sayfası ile değiştirmeniz gerekir.time.sleep()
gibi bekleme komutları ile sayfanın tam olarak yüklenmesini bekleyebilirsiniz. Alternatif olarak, WebDriverWait kullanarak daha dinamik beklemeler oluşturabilirsiniz.time.sleep()
yerine WebDriverWait
kullanarak bekleme süresini dinamik hale getirebilirsiniz. from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By # Örnek: Submit butonunun tıklanabilir olmasını bekleyin submit_button = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.ID, "submit_button")) ) submit_button.click()
clear()
metodu ile temizlemenizi sağlar: name_field.clear() email_field.clear() password_field.clear()
UNCATEGORİZED
9 gün önceUNCATEGORİZED
9 gün önceUNCATEGORİZED
10 gün önceUNCATEGORİZED
10 gün önceUNCATEGORİZED
11 gün önceUNCATEGORİZED
11 gün önceUNCATEGORİZED
16 gün önce