Selenium Select Sınıfı
🎯 Amaç
Section titled “🎯 Amaç”Web sayfalarında dropdown (açılır menü) yapıları genellikle <select> HTML etiketi ile tanımlanır.
Selenium, bu tür öğelerle kolay etkileşim kurabilmek için org.openqa.selenium.support.ui.Select sınıfını sağlar.
🧩 Select Sınıfının Temel Kullanımı
Section titled “🧩 Select Sınıfının Temel Kullanımı”HTML Örneği
Section titled “HTML Örneği”<select id="country"> <option value="tr">Türkiye</option> <option value="us">Amerika</option> <option value="de">Almanya</option></select>Java Örneği
Section titled “Java Örneği”import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.support.ui.Select;import org.openqa.selenium.chrome.ChromeDriver;
public class SelectExample { public static void main(String[] args) { WebDriver driver = new ChromeDriver(); driver.get("https://example.com/form");
WebElement countryDropdown = driver.findElement(By.id("country"));
// Select nesnesi oluşturulur Select select = new Select(countryDropdown);
// 1️⃣ Görünen metne göre seçim select.selectByVisibleText("Türkiye");
// 2️⃣ Value attribute değerine göre seçim select.selectByValue("us");
// 3️⃣ Index değerine göre seçim (0'dan başlar) select.selectByIndex(2);
driver.quit(); }}🔍 Dropdown Değerlerini Okuma
Section titled “🔍 Dropdown Değerlerini Okuma”Dropdown içindeki tüm seçenekleri listelemek mümkündür:
List<WebElement> options = select.getOptions();for (WebElement option : options) { System.out.println(option.getText());}Seçili değeri almak:
Section titled “Seçili değeri almak:”WebElement selectedOption = select.getFirstSelectedOption();System.out.println("Seçili ülke: " + selectedOption.getText());✅ Çoklu Seçim (Multiple Select)
Section titled “✅ Çoklu Seçim (Multiple Select)”Bazı <select> elementleri birden fazla seçenek seçmeye izin verir:
<select id="fruits" multiple> <option value="apple">Elma</option> <option value="banana">Muz</option> <option value="cherry">Kiraz</option></select>Select fruits = new Select(driver.findElement(By.id("fruits")));
fruits.selectByVisibleText("Elma");fruits.selectByVisibleText("Muz");
// Seçili öğeleri kaldırmakfruits.deselectByVisibleText("Elma");fruits.deselectAll();⚠️ Dikkat Edilmesi Gerekenler
Section titled “⚠️ Dikkat Edilmesi Gerekenler”| Durum | Açıklama |
|---|---|
Select sadece <select> etiketiyle çalışır. | Eğer özel JavaScript kütüphaneleri (ör. Select2, React Select) kullanılıyorsa, Select sınıfı işe yaramaz. |
isMultiple() metodu | Dropdown’un çoklu seçim destekleyip desteklemediğini döner. |
| Alternatif yöntemler | Custom dropdown’larda click() ve findElement() zinciriyle çalışmak gerekir. |
🧠 Özet
Section titled “🧠 Özet”| Metot | Açıklama |
|---|---|
selectByVisibleText(String text) | Görünen metne göre seçim yapar |
selectByValue(String value) | HTML value özelliğine göre seçim yapar |
selectByIndex(int index) | Listedeki index’e göre seçim yapar |
getOptions() | Tüm seçenekleri döner |
getFirstSelectedOption() | İlk seçili seçeneği döner |
isMultiple() | Çoklu seçim destekleniyor mu kontrol eder |
deselectAll() | Tüm seçimleri temizler (sadece multiple dropdown’larda) |