Python Selenium Kullanımı



Selenium testleri otomatikleştiren bir test aracıdır. Selenium test betikleri oluşturmak için Java, C#, Python vb. gibi birden çok programlama dilini kullanabilirsiniz. Ve ayrıca Firefox eklentisi olan Selenium-IDE ile test yazım dillerini öğrenmeden kolayca testinizi otomatik hale getirebilirsiniz.



Test Otomasyonu

Regresyon Testlerini Destekler
Geliştiriciler İçin Hızlı Geri Bildirim Sağlar
Test Durumlarını Tekrarlamayı Sağlar


Selenium’u birden fazla tarayıcıda yeniden çalıştırmak için Javascript kütüphanesi geliştirildi. Bunun sonucunda Selenium IDE ve Selenium RC (Remote Control)’nin temeli olan Selenium Core meydana geldi. Tarayıcıların Javascript için güvenlik kısıtlamaları Selenium için bazı durumları imkansız hale getirdi. Bunun için de WebDriver geliştirildi.


Selenium Araçları

Selenium IDE
Test komutlarını oluşturmak için kullanılan Firefox eklentisi olan bir araçtır. Selenium IDE kullanarak test durumları kaydedilerek yürütülür ve böylece yeniden kullanılabilir test komutları ortaya çıkar.


Selenium RC
Birden fazla testin sürekli olarak yapılmasını sağlar. Bir Selenium RC sunucusu ile çalışır.


Selenium Grid
Selenium RC’ye benzer şekilde birden fazla sunucu ile çalışabilir. Paralellik ön plandadır. Yani aynı anda farklı testler farklı uzak makinelerde çalıştırılabilir.


Selenium WebDriver
Selenium RC’nin yöntemi olarak Javascript fonksiyonlarını tarayıcıya göndermez.


Örnek olarak Python’da webdriver kullanarak küçük bir test yazalım. Öncelikle Python için selenium modülünü kurmak gerekir. Uygulamamız TurkHackTeam'ın Türkçe Web sayfasını açsın ve başlık (title) bilgilerini kontrol etsin.

import unittest
from selenium import webdriver
class FFTurkHacTeamTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
def test_baslik(self):
self.driver.get("http://www.turkhackteam.com/TR/anasayfa")
self.assertIn("TurkHackTeam - Anasayfa", driver.title)
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()


Tanımladığımız sınıfın içerisine birden fazla test yazabiliyoruz. Yazılan testler alfabetik sırayla (metodun ismine göre) çalışıyor ve her çalışan testin ardından tearDown metodu otomatik çağrılıyor. Programın tarayıcıda etkileşimde olacağı elemanları bulurken Firefox’un Firepath ve Firebug araçlarından yararlanılabilir. Elemanlar sınıf ismine göre (find_element_by_class_name), yazılan css’e göre (find_element_by_css_selector) ve elemanın id’sine göre (find_element_by_id) bulunabilir. Bu elemanlar form ögesi veya bir menü olabilir. Webdriver’ın metotlarını kullanarak formları doldurabilir ve sayfalardaki bağlantılara tıklayarak gezinebiliriz.


 

Grimner

Adanmış Üye
28 Mar 2020
6,321
120
4,775
Selenium bir tık eskimeye başlayan bir teknoloji. Bazı durumlar da hâlâ daha kullanılabilir ancak daha farklı yöntemler öncelik olmalı. Ayrıca Selenium bir tık yavaş kalıyor. Tabi yapılmak istenilen, başka yöntemler ile yapılamıyorsa kullanılabilir. Eline sağlık Kamutay.
 

kst132

Basın&Medya Ekibi Asistanı
12 Haz 2023
952
11
596


Selenium testleri otomatikleştiren bir test aracıdır. Selenium test betikleri oluşturmak için Java, C#, Python vb. gibi birden çok programlama dilini kullanabilirsiniz. Ve ayrıca Firefox eklentisi olan Selenium-IDE ile test yazım dillerini öğrenmeden kolayca testinizi otomatik hale getirebilirsiniz.



Test Otomasyonu

Regresyon Testlerini Destekler
Geliştiriciler İçin Hızlı Geri Bildirim Sağlar
Test Durumlarını Tekrarlamayı Sağlar

Selenium’u birden fazla tarayıcıda yeniden çalıştırmak için Javascript kütüphanesi geliştirildi. Bunun sonucunda Selenium IDE ve Selenium RC (Remote Control)’nin temeli olan Selenium Core meydana geldi. Tarayıcıların Javascript için güvenlik kısıtlamaları Selenium için bazı durumları imkansız hale getirdi. Bunun için de WebDriver geliştirildi.



Selenium Araçları

Selenium IDE
Test komutlarını oluşturmak için kullanılan Firefox eklentisi olan bir araçtır. Selenium IDE kullanarak test durumları kaydedilerek yürütülür ve böylece yeniden kullanılabilir test komutları ortaya çıkar.


Selenium RC
Birden fazla testin sürekli olarak yapılmasını sağlar. Bir Selenium RC sunucusu ile çalışır.


Selenium Grid
Selenium RC’ye benzer şekilde birden fazla sunucu ile çalışabilir. Paralellik ön plandadır. Yani aynı anda farklı testler farklı uzak makinelerde çalıştırılabilir.


Selenium WebDriver
Selenium RC’nin yöntemi olarak Javascript fonksiyonlarını tarayıcıya göndermez.


Örnek olarak Python’da webdriver kullanarak küçük bir test yazalım. Öncelikle Python için selenium modülünü kurmak gerekir. Uygulamamız TurkHackTeam'ın Türkçe Web sayfasını açsın ve başlık (title) bilgilerini kontrol etsin.






Tanımladığımız sınıfın içerisine birden fazla test yazabiliyoruz. Yazılan testler alfabetik sırayla (metodun ismine göre) çalışıyor ve her çalışan testin ardından tearDown metodu otomatik çağrılıyor. Programın tarayıcıda etkileşimde olacağı elemanları bulurken Firefox’un Firepath ve Firebug araçlarından yararlanılabilir. Elemanlar sınıf ismine göre (find_element_by_class_name), yazılan css’e göre (find_element_by_css_selector) ve elemanın id’sine göre (find_element_by_id) bulunabilir. Bu elemanlar form ögesi veya bir menü olabilir. Webdriver’ın metotlarını kullanarak formları doldurabilir ve sayfalardaki bağlantılara tıklayarak gezinebiliriz.





Ellerine sağlık güzel bir konu olmuş
 
Selenium bir tık eskimeye başlayan bir teknoloji. Bazı durumlar da hâlâ daha kullanılabilir ancak daha farklı yöntemler öncelik olmalı. Ayrıca Selenium bir tık yavaş kalıyor. Tabi yapılmak istenilen, başka yöntemler ile yapılamıyorsa kullanılabilir. Eline sağlık Kamutay.

Saolun hocam yazılım her daim güncellense bu dünya yeniliklere açık olsa da eskilerin istikrarlı ve sağlamlıkları kendini ortaya koyabiliyor enzem durumlarda

Ellerine sağlık güzel bir konu olmuş

Teşekkür ederim
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.