İçeriğe geç

Selenium Select Sınıfı

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ı”
<select id="country">
<option value="tr">Türkiye</option>
<option value="us">Amerika</option>
<option value="de">Almanya</option>
</select>
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 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());
}
WebElement selectedOption = select.getFirstSelectedOption();
System.out.println("Seçili ülke: " + selectedOption.getText());

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ırmak
fruits.deselectByVisibleText("Elma");
fruits.deselectAll();

DurumAçı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() metoduDropdown’un çoklu seçim destekleyip desteklemediğini döner.
Alternatif yöntemlerCustom dropdown’larda click() ve findElement() zinciriyle çalışmak gerekir.

MetotAçı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)