Selenium JAR Dosyalarını İndirme ve Eclipse’te Yapılandırma
Giriş: Selenium ve Otomasyon Testlerinin Önemi
Günümüzün hızla gelişen yazılım dünyasında, kaliteli ve hatasız ürünler sunmak her zamankinden daha büyük bir önem taşımaktadır. Yazılım geliştirme sürecinin ayrılmaz bir parçası olan test, bu kalite güvencesinin temelini oluşturur. Ancak, manuel test süreçleri genellikle zaman alıcı, tekrarlayıcı ve insan hatasına açık bir yapıya sahiptir. Projeler büyüdükçe ve özellikler arttıkça, her yeni sürümde tüm fonksiyonelliklerin manuel olarak test edilmesi neredeyse imkansız hale gelir. İşte tam bu noktada otomasyon testleri devreye girer.
Otomasyon testleri, test süreçlerini hızlandırarak, doğruluk oranını artırarak ve maliyet etkinliği sağlayarak yazılım geliştirme döngüsüne paha biçilmez katkılar sunar. Otomatikleştirilmiş testler, aynı senaryoların defalarca ve tutarlı bir şekilde çalıştırılmasına olanak tanır, bu da regresyon hatalarının erken aşamada tespit edilmesini kolaylaştırır. Web tabanlı uygulamaların test otomasyonunda ise Selenium, sektörde tartışmasız lider konumdadır. Açık kaynaklı yapısı, geniş tarayıcı ve dil desteği ile Selenium, dünya genelinde binlerce geliştirici ve test mühendisi tarafından tercih edilmektedir.
Bu makale, Selenium ile otomasyon testlerine başlamak isteyen herkes için kapsamlı bir rehber niteliğindedir. Amacımız, Selenium JAR dosyalarını nasıl indireceğinizi, Eclipse Entegre Geliştirme Ortamı’nda (IDE) nasıl yapılandıracağınızı ve ilk basit test senaryonuzu nasıl yazacağınızı adım adım göstermektir. Bu sayede, kendi otomasyon test ortamınızı kurmak için sağlam bir temel oluşturabileceksiniz.
Selenium Nedir ve Neden Kullanılır?
Selenium, web uygulamalarını otomatikleştirmek için kullanılan açık kaynaklı ve taşınabilir bir yazılım test çerçevesidir. Geliştiricilerin ve test mühendislerinin web tarayıcılarındaki eylemleri programatik olarak taklit etmelerine olanak tanır. Kullanıcıların bir web sitesinde yapabileceği her türlü etkileşimi (tıklama, metin girme, form gönderme, sayfa gezintisi vb.) otomatikleştirme yeteneğine sahiptir.
Selenium’un bu kadar popüler olmasının başlıca nedenleri şunlardır:
- Çoklu Tarayıcı Desteği: Google Chrome, Mozilla Firefox, Microsoft Edge, Safari ve Opera gibi önde gelen tüm modern web tarayıcılarını destekler. Bu sayede, uygulamanızın farklı tarayıcılarda nasıl davrandığını test edebilirsiniz.
- Çoklu Dil Desteği: Java, Python, C#, Ruby, JavaScript ve Kotlin gibi popüler programlama dillerinde test senaryoları yazmaya olanak tanır. Bu esneklik, ekiplerin mevcut dil becerilerini kullanmasına olanak sağlar.
- Açık Kaynak ve Ücretsiz: Selenium açık kaynaklı bir proje olduğu için ücretsizdir ve geniş bir topluluk desteğine sahiptir. Bu da sürekli gelişim ve zengin kaynaklar anlamına gelir.
- Esneklik ve Genişletilebilirlik: Selenium, diğer test çerçeveleri (JUnit, TestNG) ve yardımcı araçlarla (Maven, Gradle, Jenkins) kolayca entegre edilebilir. Bu sayede karmaşık ve ölçeklenebilir otomasyon çözümleri oluşturulabilir.
- Regresyon Testleri: Yeni özellikler eklendiğinde veya mevcut kodda değişiklikler yapıldığında, daha önce çalışan fonksiyonelliklerin bozulmadığından emin olmak için regresyon testleri otomatikleştirmede kritik bir rol oynar.
- Fonksiyonel Testler: Uygulamanın beklenen işlevselliği doğru bir şekilde yerine getirip getirmediğini doğrulamak için kullanılır.
- Tarayıcı Uyumluluk Testleri: Uygulamanın farklı tarayıcılarda ve işletim sistemlerinde sorunsuz çalıştığını kontrol etmek için idealdir.
Selenium Bileşenleri ve Mimarisi
Selenium, aslında tek bir araçtan ziyade, web otomasyonu için tasarlanmış bir dizi bileşenin bir araya gelmesidir. Bu bileşenler, farklı ihtiyaçlara yönelik çözümler sunar:
- Selenium IDE (Integrated Development Environment):
- Bir tarayıcı eklentisidir (Chrome ve Firefox için mevcuttur).
- Test senaryolarını kaydetme ve oynatma özelliğine sahiptir. Kullanıcının tarayıcıdaki etkileşimlerini (tıklamalar, metin girişleri) kaydeder ve daha sonra bu eylemleri otomatik olarak tekrar edebilir.
- Daha çok hızlı prototipleme, basit test senaryoları ve Selenium’a yeni başlayanlar için kullanışlıdır. Karmaşık test otomasyon projeleri için yetersiz kalabilir.
- Selenium WebDriver:
- Selenium’un kalbidir ve bu makalenin ana odak noktasıdır.
- Tarayıcılarla doğrudan iletişim kuran bir API (Uygulama Programlama Arayüzü) sağlar. Her tarayıcı için özel olarak geliştirilmiş bir sürücü (örneğin, ChromeDriver, GeckoDriver) aracılığıyla tarayıcıların yerel API’lerini kullanarak etkileşimde bulunur.
- JSON Wire Protocol veya daha yeni W3C WebDriver standardını kullanarak tarayıcıya komutlar gönderir ve tarayıcıdan yanıtlar alır.
- Daha güçlü, esnek ve ölçeklenebilir test senaryoları yazmak için tercih edilir.
- Selenium Grid:
- Test senaryolarını birden fazla makine ve tarayıcıda eş zamanlı (paralel) olarak çalıştırmak için kullanılır.
- Testlerin çok daha hızlı tamamlanmasını sağlar, özellikle büyük test paketleri ve farklı tarayıcı/işletim sistemi kombinasyonları üzerinde test yapılması gerektiğinde hayati önem taşır.
- Bir “Hub” (merkezi sunucu) ve birden fazla “Node” (testleri çalıştıran makineler) mimarisiyle çalışır.
- Selenium RC (Remote Control):
- Selenium’un eski bir bileşenidir ve artık aktif olarak geliştirilmemekte veya desteklenmemektedir.
- Tarayıcı ile bir JavaScript enjeksiyonu aracılığıyla etkileşim kuruyordu.
- Modern projelerde Selenium WebDriver’ın kullanılması önerilir.
Bu makalede, en güçlü ve yaygın kullanılan bileşen olan Selenium WebDriver’ı Eclipse ortamında nasıl yapılandıracağımıza odaklanacağız.
Selenium JAR Dosyalarını İndirme Adımları
Selenium ile bir otomasyon projesine başlamadan önce, gerekli olan JAR (Java Archive) dosyalarını ve tarayıcı sürücülerini indirmeniz gerekmektedir. Bu adımlar, Selenium projenizin temelini oluşturacaktır.
Selenium WebDriver JAR Dosyalarını İndirme
Selenium WebDriver’ı Java projenizde kullanabilmek için, ilgili kütüphane dosyalarını (JAR’lar) indirmeniz gerekir.
- Resmi Selenium Web Sitesini Ziyaret Edin: Bir web tarayıcısı açın ve Selenium’un resmi web sitesine gidin: https://www.selenium.dev.
- İndirme Sayfasına Gidin: Ana sayfada genellikle “Downloads” (İndirmeler) veya benzer bir bağlantı bulunur. Bu bağlantıya tıklayarak indirme sayfasına ulaşın.
- Java İçin İstemci Kütüphanesini İndirin: “Selenium Client & WebDriver Language Bindings” başlığı altında, farklı programlama dilleri için indirme bağlantılarını göreceksiniz. “Java” başlığının altındaki “Stable” (Kararlı) sürümün indirme linkine tıklayın. Genellikle bu bir
.zipdosyasıdır (örneğin,selenium-java-4.x.x.zip). - Dosyaları Çıkarın: İndirdiğiniz
.zipdosyasını bilgisayarınızda kolayca erişebileceğiniz bir konuma (örneğin,C:\Selenium_Librariesveya~/Selenium_Libraries) çıkarın. Çıkarılan klasörün içindeselenium-java-4.x.x.jargibi ana JAR dosyasını velibadında bir alt klasör bulacaksınız.libklasörü, Selenium’un çalışması için gerekli olan diğer bağımlılık JAR dosyalarını içerir. Bu JAR’ların tamamı projenize eklenmelidir.
Tarayıcı Sürücülerini (WebDriver Executables) İndirme
Selenium WebDriver, doğrudan tarayıcı ile etkileşim kurmaz. Bunun yerine, her tarayıcı için özel olarak geliştirilmiş bir “tarayıcı sürücüsü” (WebDriver executable) aracılığıyla iletişim kurar. Bu sürücüler, tarayıcıya özgü API’leri kullanarak komutları tarayıcıya iletir ve sonuçları geri alır. Kullanacağınız her tarayıcı için ilgili sürücüyü indirmeniz gereklidir.
- ChromeDriver (Google Chrome için):
- Chrome tarayıcınızın sürümünü kontrol edin (Chrome Ayarları > Chrome Hakkında).
- ChromeDriver indirme sayfasına gidin: https://chromedriver.chromium.org/downloads.
- Kendi Chrome sürümünüze uygun ChromeDriver sürümünü bulun ve indirin.
- İndirilen
.zipdosyasını açın ve içindekichromedriver.exe(Windows) veyachromedriver(macOS/Linux) dosyasını, Selenium JAR dosyalarını çıkardığınız klasörün yanına veya projenizin içindedriversgibi bir klasöre yerleştirin.
- GeckoDriver (Mozilla Firefox için):
- Firefox tarayıcınızın sürümünü kontrol edin.
- GeckoDriver GitHub sayfasına gidin: https://github.com/mozilla/geckodriver/releases.
- Firefox sürümünüzle uyumlu GeckoDriver sürümünü indirin.
- İndirilen
.zipdosyasını açın ve içindekigeckodriver.exe(Windows) veyageckodriver(macOS/Linux) dosyasını uygun bir konuma yerleştirin.
- MSEdgeDriver (Microsoft Edge için):
- Edge tarayıcınızın sürümünü kontrol edin (Edge Ayarları > Microsoft Edge Hakkında).
- MSEdgeDriver indirme sayfasına gidin: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/.
- Edge sürümünüze uygun MSEdgeDriver sürümünü indirin.
- İndirilen
.zipdosyasını açın ve içindekimsedgedriver.exedosyasını uygun bir konuma yerleştirin.
- SafariDriver (Apple Safari için):
- SafariDriver, macOS ile birlikte gelir ve ayrı bir indirme gerektirmez. Safari tercihlerinden “Develop” (Geliştirme) menüsünü etkinleştirip “Allow Remote Automation” (Uzaktan Otomasyona İzin Ver) seçeneğini işaretlemeniz yeterlidir.
Önemli Not: İndirdiğiniz tarayıcı sürücülerini, projeniz içinde kolayca erişilebilecek bir klasöre (örneğin, projenizin kök dizininde drivers adında bir klasör oluşturarak) yerleştirmeniz önerilir. Daha sonra kodunuzda bu sürücülerin yolunu belirteceksiniz.
Eclipse IDE Kurulumu ve Temel Proje Oluşturma
Eclipse, Java geliştiricileri arasında oldukça popüler, güçlü ve ücretsiz bir IDE’dir. Selenium test otomasyon projeleri için de yaygın olarak kullanılır.
Eclipse IDE Kurulumu
- Eclipse İndirme: Eclipse’in resmi web sitesine gidin: https://www.eclipse.org/downloads/.
- Sürüm Seçimi: “Eclipse IDE for Java Developers” sürümünü indirmeniz önerilir. Bu sürüm, Java projeleri için gerekli tüm araçları içerir.
- Kurulum: İndirdiğiniz paketi (genellikle bir
.zipveya.tar.gzdosyası) bilgisayarınızda istediğiniz bir konuma çıkarın. Kurulum dosyası yoktur, sadece paketi çıkarmanız yeterlidir. - Eclipse’i Başlatma: Çıkardığınız klasördeki
eclipse.exe(Windows) veyaEclipseuygulamasını (macOS/Linux) çalıştırın. - Çalışma Alanı (Workspace) Seçimi: Eclipse ilk açıldığında sizden bir çalışma alanı (workspace) seçmenizi isteyecektir. Bu, projelerinizin ve ayarlarınızın depolanacağı dizindir. Varsayılanı kullanabilir veya istediğiniz bir konumu seçebilirsiniz. “Launch” (Başlat) butonuna tıklayarak Eclipse’i açın.
Yeni Bir Java Projesi Oluşturma
Eclipse açıldıktan sonra, Selenium test senaryolarınızı yazacağınız bir Java projesi oluşturmanız gerekmektedir.
- Yeni Proje Sihirbazını Açın: Eclipse menüsünden
File > New > Java Projectyolunu izleyin. Alternatif olarak,Ctrl+N(Windows) veyaCmd+N(macOS) kısayolunu kullanıp “Java Project” yazarak arayabilirsiniz. - Proje Adını Belirleyin: “Project name” alanına projeniz için anlamlı bir ad girin (örneğin,
SeleniumAutomationProject). - JRE Seçimi: “JRE” (Java Runtime Environment) bölümünde, bilgisayarınızda yüklü olan ve kullanmak istediğiniz Java sürümünü seçin. Genellikle varsayılan olarak gelen en güncel sürüm uygun olacaktır.
- Proje Yapılandırması: Diğer ayarları varsayılan olarak bırakabilir ve “Finish” (Bitir) düğmesine tıklayarak projeyi oluşturun.
- Proje Yapısı: Projeniz oluşturulduktan sonra, Eclipse’in “Package Explorer” (Paket Gezgini) görünümünde projenizin adını göreceksiniz. Projenizin altında
src(source – kaynak) adında bir klasör bulunur. Java kod dosyalarınızı (sınıflarınızı) bu klasörün içine veya alt paketlerine yerleştireceksiniz.
Eclipse Projesine Selenium JAR Dosyalarını Ekleme
Selenium JAR dosyalarını indirdikten ve Eclipse projenizi oluşturduktan sonraki en kritik adım, bu JAR dosyalarını projenize eklemektir. Bu sayede Eclipse, Selenium kütüphanelerindeki sınıfları ve metotları tanıyacak ve kodunuzu derleyebilecektir. Bu işlemi yapmanın iki temel yolu vardır: Harici JAR’ları doğrudan eklemek veya Maven gibi bir bağımlılık yönetim aracı kullanmak.
Harici JAR’ları Projeye Ekleme Yöntemi
Bu yöntem, özellikle küçük projeler veya Maven gibi araçlara aşina olmayan kullanıcılar için daha basittir.
- Proje Özelliklerini Açın: Eclipse’in “Package Explorer” görünümünde, oluşturduğunuz Java projesine (örneğin,
SeleniumAutomationProject) sağ tıklayın. Açılan menüden “Properties” (Özellikler) seçeneğini seçin. - Java Build Path’e Gidin: Özellikler penceresinin sol tarafındaki menüden “Java Build Path” (Java Derleme Yolu) seçeneğine tıklayın.
- Kütüphaneler Sekmesini Seçin: Sağ taraftaki bölmede “Libraries” (Kütüphaneler) sekmesine geçin.
- Harici JAR’ları Ekleyin:
- “Add External JARs…” (Harici JAR’ları Ekle…) düğmesine tıklayın.
- Daha önce indirdiğiniz ve bir klasöre çıkardığınız Selenium JAR dosyalarının bulunduğu konuma gidin.
selenium-java-4.x.x.jargibi ana JAR dosyasını seçin ve “Open” (Aç) düğmesine tıklayın.- Aynı işlemi tekrarlayarak,
libklasörünün içindeki tüm diğer JAR dosyalarını da seçin ve ekleyin. Bu adım çok önemlidir, çünkü Selenium’un birçok bağımlılığılibklasöründe yer alır. Tüm JAR’ları seçmek içinCtrl(Windows) veyaCmd(macOS) tuşuna basılı tutarak birden fazla dosya seçebilirsiniz.
- Uygula ve Kapat: Tüm gerekli JAR dosyalarını ekledikten sonra, “Apply” (Uygula) ve ardından “Apply and Close” (Uygula ve Kapat) düğmelerine tıklayarak değişiklikleri kaydedin ve özellikleri kapatın.
Artık projeniz Selenium kütüphanelerini kullanmaya hazır hale gelmiştir. Eclipse, bu JAR dosyalarını projenizin derleme yoluna eklemiş ve Selenium sınıflarını tanıyabilecektir.
Maven Kullanarak Bağımlılıkları Yönetme (Alternatif ve Önerilen Yöntem)
Büyük ve karmaşık projelerde, özellikle birden fazla bağımlılığın olduğu durumlarda, Maven gibi bir bağımlılık yönetim aracı kullanmak çok daha verimli ve sürdürülebilirdir. Maven, projenizin ihtiyaç duyduğu tüm kütüphaneleri (ve onların bağımlılıklarını) otomatik olarak indirir ve yönetir.
- Maven Projesi Oluşturma:
- Eclipse menüsünden
File > New > Maven Projectyolunu izleyin. - “Create a simple project (skip archetype selection)” (Basit bir proje oluştur) seçeneğini işaretleyin ve “Next” (İleri) düğmesine tıklayın.
- “Group Id” (örneğin,
com.selenium.automation) ve “Artifact Id” (örneğin,SeleniumMavenProject) gibi proje bilgilerini girin. “Packaging” olarakjarseçeneğini bırakın. - “Finish” (Bitir) düğmesine tıklayarak Maven projesini oluşturun.
- Eclipse menüsünden
pom.xmlDosyasını Düzenleme:- Maven projeniz oluşturulduktan sonra, projenizin kök dizininde
pom.xmladında bir dosya göreceksiniz. Bu dosya, Maven projenizin yapılandırma dosyasıdır. pom.xmldosyasını açın.etiketinin içinebloğunu eklemeniz gerekecek.- Aşağıdaki Selenium Java bağımlılığını
bloğunun içine ekleyin:org.seleniumhq.selenium selenium-java 4.21.0 io.github.bonigarcia webdrivermanager 5.8.0 Not:
etiketindeki sürüm numarasını, Selenium’un en güncel kararlı sürümüyle değiştirdiğinizden emin olun. WebDriverManager, tarayıcı sürücülerini manuel olarak indirip yolunu belirtme zahmetinden sizi kurtaran harika bir kütüphanedir. pom.xmldosyasını kaydedin (Ctrl+SveyaCmd+S). Maven otomatik olarak gerekli JAR dosyalarını internetten indirip projenizin “Maven Dependencies” klasörüne ekleyecektir. Bu klasörü “Package Explorer”da projenizin altında görebilirsiniz.
- Maven projeniz oluşturulduktan sonra, projenizin kök dizininde
Maven kullanmak, bağımlılıkları yönetmeyi çok daha kolaylaştırır, bağımlılık çakışmalarını azaltır ve projenizin taşınabilirliğini artırır. Modern Selenium projelerinde bu yöntem şiddetle tavsiye edilir.
İlk Selenium Test Senaryosunu Yazma
Selenium JAR dosyalarını projenize ekledikten sonra, artık ilk test senaryonuzu yazmaya hazırsınız. Basit bir Google araması yapan bir örnek üzerinden temel adımları inceleyelim.
Gerekli İçe Aktarmalar
Java dosyanızın en üstüne, kullanacağınız Selenium sınıflarını içe aktarmanız gerekir:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver; // Chrome için, diğer tarayıcılar için ilgili sınıfı kullanın
import java.util.concurrent.TimeUnit; // Implicit wait için
WebDriver Örneğini Başlatma
Selenium’un tarayıcı ile etkileşime geçebilmesi için bir WebDriver nesnesi oluşturmanız gerekir. Bu adımda, kullanacağınız tarayıcı sürücüsünün yolunu da belirtmelisiniz.
// Tarayıcı sürücüsünün yolunu belirtin.
// Bu kısım, indirdiğiniz chromedriver.exe dosyasının gerçek yolunu içermelidir.
System.setProperty("webdriver.chrome.driver", "C:\\drivers\\chromedriver.exe");
// Eğer WebDriverManager kullanıyorsanız, bu satıra gerek kalmaz:
// WebDriverManager.chromedriver().setup();
// ChromeDriver nesnesini oluşturun
WebDriver driver = new ChromeDriver();
Not: Eğer Maven ile WebDriverManager bağımlılığını eklediyseniz, System.setProperty satırına gerek kalmaz. Bunun yerine WebDriverManager.chromedriver().setup(); kodunu kullanabilirsiniz. Bu, sürücüyü otomatik olarak indirir ve yapılandırır.
Bir Web Sitesini Ziyaret Etme
driver.get() metodu ile istediğiniz URL’ye gidebilirsiniz.
driver.get("https://www.google.com");
driver.manage().window().maximize(); // Tarayıcı penceresini tam ekran yapar
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); // Sayfa yüklemesi için bekler
Element Bulma ve Etkileşim
Selenium, bir web sayfasındaki elementleri bulmak için çeşitli “locator” (konumlandırıcı) stratejileri sunar:
By.id("elementId"): Elementinidözelliğine göre bulur. En hızlı ve güvenilir yöntemdir.By.name("elementName"): Elementinnameözelliğine göre bulur.By.className("elementClass"): Elementinclassözelliğine göre bulur. Birden fazla element aynı sınıfa sahip olabilir.By.tagName("tagName"): Elementin HTML etiket adına göre bulur (örn:input,a,div).By.linkText("Link Text"): Bağlantı metninin tamamına göre bulur.By.partialLinkText("Partial Link Text"): Bağlantı metninin bir kısmına göre bulur.By.cssSelector("cssSelector"): CSS seçicileri kullanarak element bulur. Esnek ve güçlü bir yöntemdir.By.xpath("xpathExpression"): XPath ifadeleri kullanarak element bulur. En esnek ancak bazen en yavaş ve kırılgan yöntemdir.
Bulduğunuz bir WebElement nesnesi üzerinde çeşitli etkileşim metotlarını kullanabilirsiniz:
sendKeys("metin"): Bir metin kutusuna metin girer.click(): Bir düğmeye, bağlantıya veya herhangi bir tıklanabilir elemente tıklar.submit(): Bir formu gönderir (genellikle bir arama kutusunasendKeysyapıp ardından bu metodu çağırmak arama düğmesine tıklamakla aynı etkiyi yapar).getText(): Elementin görünür metnini alır.getAttribute("attributeName"): Elementin belirli bir özelliğinin değerini alır (örn:value,href).
Testi Sonlandırma
Test senaryonuz bittikten sonra, açtığınız tarayıcı penceresini kapatmak ve WebDriver oturumunu sonlandırmak önemlidir.
driver.close(): Sadece mevcut tarayıcı penceresini kapatır. Eğer birden fazla pencere açıksa diğerleri açık kalır.driver.quit(): Açık olan tüm tarayıcı pencerelerini kapatır ve WebDriver oturumunu tamamen sonlandırır. Genellikle test senaryolarının sonunda tercih edilen yöntem budur.
Örnek Kod
Aşağıda, Google’da “Selenium WebDriver” aratan ve sonuç sayfasının başlığını kontrol eden basit bir test senaryosu bulunmaktadır:
package com.selenium.tests; // Kendi paket adınızı kullanın
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit; // Implicit wait için
// Eğer Maven ile WebDriverManager kullanıyorsanız, bu satırı ekleyin:
// import io.github.bonigarcia.wdm.WebDriverManager;
public class SimpleSeleniumTest {
public static void main(String[] args) {
// 1. Tarayıcı sürücüsünün yolunu belirtin
// Kendi chromedriver.exe dosyanızın yolunu buraya yazın
// Örneğin: "C:\\drivers\\chromedriver.exe" veya "/Users/username/drivers/chromedriver"
System.setProperty("webdriver.chrome.driver", "C:\\drivers\\chromedriver.exe");
// VEYA WebDriverManager kullanıyorsanız (Maven projesi için):
// WebDriverManager.chromedriver().setup();
// 2. WebDriver nesnesini başlatın
WebDriver driver = new ChromeDriver();
// Opsiyonel: Sayfa yükleme sürelerini beklemek için implicit wait ekleme
// Belirtilen süre içinde element bulunamazsa hata verir.
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
try {
// 3. Bir web sitesini ziyaret edin
driver.get("https://www.google.com");
System.out.println("Google ana sayfası açıldı.");
// Tarayıcı penceresini maksimize et
driver.manage().window().maximize();
// 4. Bir web elementini bulun ve etkileşim kurun
// Google arama kutusunu bulun (name attribute'u 'q' olan)
WebElement searchBox = driver.findElement(By.name("q"));
searchBox.sendKeys("Selenium WebDriver");
System.out.println("Arama kutusuna 'Selenium WebDriver' yazıldı.");
// Arama düğmesine tıklayın veya formu gönderin
// Google'da Enter tuşuna basmak da işe yarar
searchBox.submit(); // Bu, formu gönderir, genellikle arama düğmesine basmakla aynı etkiyi yapar.
System.out.println("Arama yapıldı.");
// Sonuç sayfasının başlığını kontrol edin
String pageTitle = driver.getTitle();
System.out.println("Sayfa Başlığı: " + pageTitle);
if (pageTitle.contains("Selenium WebDriver")) {
System.out.println("Test BAŞARILI: Başlık 'Selenium WebDriver' içeriyor.");
} else {
System.out.println("Test BAŞARISIZ: Başlık 'Selenium WebDriver' içermiyor.");
}
} catch (Exception e) {
System.err.println("Test sırasında bir hata oluştu: " + e.getMessage());
e.printStackTrace();
} finally {
// 5. WebDriver oturumunu kapatın
// Tüm tarayıcı pencerelerini kapatır ve sürücü oturumunu sonlandırır.
driver.quit();
System.out.println("Tarayıcı kapatıldı.");
}
}
}
Bu kodu Eclipse’te oluşturduğunuz projenin src klasörünün altına yeni bir Java sınıfı olarak kaydedin ve çalıştırın. Konsolda adımları ve test sonucunu görmelisiniz.
Sık Karşılaşılan Sorunlar ve Çözümleri
Selenium ile çalışmaya başlarken bazı yaygın sorunlarla karşılaşabilirsiniz. İşte bunlardan bazıları ve çözümleri:
WebDriver Yolu Hatası (System.setProperty)
- Hata Mesajı:
IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://chromedriver.chromium.org/home(veya benzeri bir mesaj) - Neden: Selenium, tarayıcı sürücüsünün (örneğin
chromedriver.exe) nerede olduğunu bulamıyor. - Çözüm:
System.setProperty()metodunda belirttiğiniz yolun, sürücü dosyasının gerçek konumu olduğundan emin olun.- Sürücü dosyasının adının doğru yazıldığından emin olun (örn:
chromedriver.exeveyageckodriver). - Sürücü dosyasının gerçekten belirtilen yolda var olduğunu ve erişim izinlerinin olduğunu kontrol edin.
- Eğer Maven kullanıyorsanız ve
WebDriverManagereklediyseniz,System.setProperty()satırını silipWebDriverManager.chromedriver().setup();gibi ilgilisetup()metodunu kullandığınızdan emin olun.
Selenium JAR Dosyalarının Eksik Olması
- Hata Mesajı:
NoClassDefFoundError,ClassNotFoundExceptiongibi hatalar veya Selenium sınıflarını içe aktarırken (import) Eclipse’in hata vermesi. - Neden: Selenium kütüphane JAR dosyaları, projenizin derleme yoluna doğru bir şekilde eklenmemiştir.
- Çözüm:
- Projenizin
Java Build Path > Librariessekmesinde, anaselenium-java-x.x.x.jardosyasının velibklasöründeki tüm diğer JAR dosyalarının eksiksiz bir şekilde eklendiğinden emin olun. - Eğer Maven kullanıyorsanız,
pom.xmldosyanızdaki Selenium bağımlılığının doğru yazıldığından ve kaydedildiğinden emin olun. Eclipse’in Maven bağımlılıklarını indirmesi için projenize sağ tıklayıpMaven > Update Project...seçeneğini kullanabilirsiniz. - Bazen Eclipse’in önbelleği sorun çıkarabilir.
Project > Clean...seçeneğini kullanarak projenizi temizleyip yeniden derlemek yardımcı olabilir.
- Projenizin
Tarayıcı Uyumluluk Sorunları
- Hata Mesajı:
SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XX(veya benzeri bir mesaj) - Neden: İndirdiğiniz tarayıcı sürücüsü (örn: ChromeDriver) ile bilgisayarınızda yüklü olan tarayıcının (örn: Google Chrome) sürümü uyumsuz.
- Çözüm:
- Tarayıcınızın (Chrome, Firefox, Edge vb.) güncel olduğundan emin olun.
- Tarayıcı sürümünüze tamamen uygun olan tarayıcı sürücüsünü (ChromeDriver, GeckoDriver vb.) indirdiğinizden emin olun. Genellikle sürücü indirme sayfalarında hangi sürücünün hangi tarayıcı sürümünü desteklediği belirtilir.
- Eğer
WebDriverManagerkullanıyorsanız, bu kütüphane tarayıcınızın sürümünü otomatik olarak algılayıp uyumlu sürücüyü indireceği için bu tür sorunlarla karşılaşma olasılığınız azalır.
Element Bulunamama (NoSuchElementException)
- Hata Mesajı:
NoSuchElementException: no such element: Unable to locate element: {"method":"id","selector":"elementId"}(veya kullandığınız locator’a göre benzeri) - Neden: Selenium, belirtilen locator (ID, name, XPath vb.) ile web sayfasında elementi bulamıyor.