Python ile Selenium: Web Otomasyonu Başlangıç Rehberi

ecndn
ecndn
2uSa...Ddqn
24 Jan 2024
47

1. Selenium Nedir?

Selenium, web tarayıcıları üzerinde otomasyon yapmak, test senaryolarını otomatize etmek veya web üzerinde veri çekmek için kullanılan bir açık kaynaklı araçtır. Özellikle web uygulamalarının test edilmesi ve etkileşimli otomasyon işlemleri için tercih edilir. Python ile entegrasyonu, güçlü bir otomasyon aracı haline getirir.


2. Kurulum ve Temel Ayarlar

2.1. Python ve pip Kurulumu:

Python ve pip, projenizi Python dilinde yazdığınız Selenium script'lerini çalıştırmak için gerekli temel bileşenlerdir. Terminal veya komut istemcisine aşağıdaki komutları girerek Python ve pip'i yükleyebilirsiniz:

sudo apt-get update sudo apt-get install python3 sudo apt-get install python3-pip 


Bu adımlar, Python dilini ve paket yöneticisi pip'i sisteminize başarıyla kurmanızı sağlar.


2.2. Selenium Kurulumu:

Selenium'u projenize eklemek için aşağıdaki komutu kullanabilirsiniz:

pip3 install selenium 

Bu, Python projenizde Selenium'u kullanabilmeniz için gerekli olan kütüphaneyi yükler.

Bu adımları takip ederek, Selenium'u Python ortamınıza başarıyla kurabilir ve web otomasyonunuza başlayabilirsiniz.

3. İlk Selenium Testi


3.1. WebDriver İndirme:

Selenium, tarayıcılarla etkileşim sağlamak için WebDriver'ları kullanır. İlgili tarayıcı için uygun WebDriver'ı Selenium WebDriver Resmi Sayfası üzerinden indirebilirsiniz. Örneğin, Chrome için Chromedriver'ı indirin ve bilgisayarınıza kaydedin.

3.2. Python ile Temel Selenium Kodu:

Python kullanarak Selenium'u başlatmak için aşağıdaki örnek kodu kullanabilirsiniz:

from selenium import webdriver

# WebDriver'ı başlatma
driver = webdriver.Chrome("path/to/chromedriver")

# Web sayfasını açma
driver.get("https://www.example.com")

# Web elementini bulma ve etkileşim
element = driver.find_element_by_name("username")
element.send_keys("kullanici_adi")

# Tarayıcıyı kapatma
driver.quit()


Bu temel Selenium script'i, tarayıcıyı başlatmayı, belirli bir web sayfasını açmayı, sayfadaki bir HTML elementini bulmayı ve bu elemente bir değer göndermeyi içerir. Bu örnek, Selenium'un temel kullanımını anlamanıza yardımcı olacaktır.


4. İleri Düzey Kullanımlar

4.1. Sayfa İnteraksiyonları:

Sayfa üzerinde etkileşim sağlamak için Keys modülünü kullanabilirsiniz. Örneğin, bir arama kutusuna metin göndermek ve Enter tuşuna basmak için aşağıdaki örnek kullanılabilir:

from selenium.webdriver.common.keys import Keys

search_box = driver.find_element_by_name("q")
search_box.send_keys("Selenium" + Keys.RETURN)


Bu örnekte, send_keys fonksiyonu aracılığıyla bir metin dizisi (örneğin "Selenium") gönderiliyor ve ardından Keys.RETURN ile Enter tuşuna basılıyor.


4.2. Element Bekleme:

Web sayfaları dinamik olarak yüklendiği için bazen belirli bir HTML öğesini bulmaya çalışırken bekleme stratejileri kullanmak önemlidir. WebDriverWait sınıfını ve expected_conditions modülünü kullanarak elementin belirli bir durumunu bekleyebilirsiniz.

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# ID'si "example_id" olan bir elementin varlığını bekler
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "example_id"))
)


Bu örnekte, WebDriverWait ile belirli bir zaman boyunca (10 saniye) presence_of_element_located metodu kullanılarak belirli bir HTML elementinin varlığı beklenir. Eğer element belirli bir süre içinde bulunmazsa, bir TimeoutException hatası alırsınız.


5. Örnek Uygulamalar

5.1. Form Doldurma ve Gönderme:

Web formları üzerinde etkileşim sağlamak, kullanıcı adı ve şifre gibi bilgileri otomatik olarak doldurmak ve ardından formu göndermek için Selenium'u kullanabilirsiniz. Örneğin:

username = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")

username.send_keys("kullanici_adi")
password.send_keys("sifre")

driver.find_element_by_id("submit_button").click()


Bu örnekte, kullanıcı adı ve şifre alanlarına veri gönderildikten sonra, "submit_button" id'sine sahip olan butona tıklanarak form gönderilir.


5.2. Web Scraping:

Web scraping, Selenium'un güçlü özelliklerinden biridir. Belirli bir HTML öğesini veya sınıfı seçerek sayfa üzerinde dolaşabilir ve verileri çekebilirsiniz. Örneğin:

elements = driver.find_elements_by_css_selector(".example-class")
for element in elements:
    print(element.text)


Bu örnekte, sayfadaki tüm "example-class" sınıfına sahip elementleri bulur ve bu elementlerin metin içeriğini yazdırır. Web scraping, veri madenciliği veya bilgi toplama için kullanışlı bir araçtır. Ancak, web sitelerinin kullanım politikalarını ve yerel yasaları göz önünde bulundurmalısınız.

Bu rehber, Python ve Selenium'u kullanarak web otomasyonunu anlamanıza ve uygulamalar geliştirmenize yardımcı olacak temel bilgileri içermektedir.

Diğer Yazılarım:
HTML ve CSS Başlangıç Rehberi
Node.js ve Puppeteer Kullanımı: Başlangıç Rehberi
React Native Animasyonları: Pratik Örneklerle Başlangıç Rehberi
Node.js ile Twitter / X.com API Kullanımı: Temel Adımlar
Chrome Eklentisi Geliştirme Kılavuzu
React.js ile Modern Web Geliştirme: Bileşen Tabanlı Güç
JavaScript: Web Geliştirmenin Temel Taşı
Blockchain Teknolojisi Nedir?
Celestia Coin: Geleceğin Kripto Parası
Step-by-Step Guide to Creating a Smart Contract with Ether.js
Guide to Building a RESTful API with Node.js
Nodejs ve 10 Özelliği

Write & Read to Earn with BULB

Learn More
Python
Tech News
Software Development

Enjoy this blog? Subscribe to ecndn

1 Comment

B
No comments yet.
Most relevant comments are displayed, so some may have been filtered out.

哆哆女性网周易八卦六爻免费预测营销软文推广平台seo排名优化效果付费家庭农场起什么名字给二手车公司起名网络推广seo怎么做东阳seo整站seo服务周易卦象解释上海制作手机网站天平座的性格有顶天家族周易大学堂在网上起姓名大全2019 宝宝 起名机械制作的网站电子商务网站建设与管理深圳软文营销推广地产行业网站建设站群seo培训宜昌seo优化深圳seo整站优化奥古斯都之路高中责任作文梦的解析 书jq手写签名周公解梦app房产起取名大全关于电力安装公司起名周易网生辰八字免费淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化