0

Selenium’da Data Provider Kullanımı

Share

Selenium, web tarayıcılarını otomatize etmek için kullanılan güçlü bir araçtır. Web scraping, veri toplama, otomasyon ve test otomasyonu gibi birçok alanda popülerdir. Selenium, çeşitli veri sağlama yöntemleriyle kullanıcılarına esneklik sunar. Ayrıca, veri sağlama işlemlerinde Data Provider kullanımı da oldukça önemlidir. Bu yazıda, Selenium’da veri sağlama yöntemlerini, Data Provider kullanımını ve bunların nasıl kullanılabileceğini ele alacağız.

1. XPath ve CSS Seçicileri

Selenium, web sayfalarındaki elementlere XPath ve CSS seçicileri aracılığıyla erişebilir. XPath ve CSS seçicileri, belirli HTML elementlerini tanımlamak için kullanılan yol ve desenlerdir. Örneğin, bir XPath ifadesi kullanarak bir elementi belirleyebilir ve bu elementin metnini veya özelliklerini alabilirsiniz.

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class XPathAndCssSelectors {
    public static void main(String[] args) {
        // WebDriver'ı başlat
        WebDriver driver = new ChromeDriver();

        // Web sayfasını yükle
        driver.get("https://example.com");

        // XPath kullanarak bir elementi bul
        WebElement element = driver.findElement(By.xpath("//h1"));

        // Elementin metnini yazdır
        System.out.println(element.getText());

        // WebDriver'ı kapat
        driver.quit();
    }
}


2. Element Özelliklerini Kullanma

Selenium, bulunan bir elementin özelliklerine erişebilir ve bu özellikleri kullanarak veri alabilirsiniz. Özellikle, get_attribute() yöntemiyle bir elementin belirli bir özelliğini alabilirsiniz.


import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class GetElementAttribute {
    public static void main(String[] args) {
        // WebDriver'ı başlat
        WebDriver driver = new ChromeDriver();

        // Web sayfasını yükle
        driver.get("https://example.com");

        // WebElement'i bul
        WebElement element = driver.findElement(By.tagName("h1"));

        // WebElement'in "class" özelliğini al
        String classAttributeValue = element.getAttribute("class");

        // Özelliği yazdır
        System.out.println(classAttributeValue);

        // WebDriver'ı kapat
        driver.quit();
    }
}

3. Web Scraping

Selenium, web scraping için güçlü bir araçtır. Web scraping, web sayfalarından veri toplama işlemidir. Örneğin, bir e-ticaret sitesinden ürün bilgilerini toplamak veya bir haber sitesinden başlıkları almak gibi.

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

import java.util.List;

public class WebScraping {
    public static void main(String[] args) {
        WebDriver driver = new ChromeDriver();

        driver.get("https://news.com");

        List<WebElement> headlines = driver.findElements(By.xpath("//h2[@class='headline']"));

        for (WebElement headline : headlines) {
            System.out.println(headline.getText());
        }

        driver.quit();
    }
}

4. Data Provider Kullanımı

Data Provider, Selenium testlerinde veri setlerini dinamik olarak sağlamak için kullanılır. Özellikle, bir test senaryosunu farklı veri setleriyle çalıştırmak istediğinizde veya birden çok kez aynı testi farklı giriş verileriyle çalıştırmak istediğinizde kullanışlıdır.


import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class DataProviderExample {
    @DataProvider(name = "loginData")
    public Object[][] loginData() {
        return new Object[][] {
            {"user1", "pass1"},
            {"user2", "pass2"}
        };
    }

    @Test(dataProvider = "loginData")
    public void testLogin(String username, String password) {
        // Kullanıcı adı ve şifreyle oturum açmayı test et
        login(username, password);
        assert isLoggedIn(username);
    }

    // Gerçek login ve isLoggedIn metotları buraya eklenebilir
}

Selenium’da veri sağlama yöntemlerinin yanı sıra Data Provider kullanımı da test otomasyonunda büyük öneme sahiptir. Bu yöntemler sayesinde, farklı senaryoları ve veri setlerini kolayca test edebilir ve test kapsamını genişletebilirsiniz.

Bu yazıda, Selenium kullanarak veri sağlamanın temel yöntemlerini ve Data Provider kullanımını inceledik. XPath ve CSS seçicileri, element özelliklerini kullanma, web scraping ve Data Provider gibi yöntemlerle, Selenium ile web üzerindeki verilere erişmek ve bunları işlemek oldukça kolaydır.