Açılır Listeden Değer Nasıl Seçilir Selenium

⚡ Akıllı Özet

Açılır menüden bir değer seçin. Selenium HTML SELECT öğelerini kontrol etmek için özel Select sınıfını kullanır. Bu sınıf, seçenekleri hassas bir şekilde seçen ve çoklu seçim açılır menülerini destekleyen selectByVisibleText, selectByValue ve selectByIndex yöntemlerini sunar.

  • ???? Paketi içe aktarın: org.openqa.selenium.support.ui.Select'i içeri aktarın ve herhangi bir seçim yöntemini çağırmadan önce WebElement'i bu şekilde sarın.
  • 🎯 Doğru yöntemi seçin: Görüntülenen metin, değer özniteliği veya konumun hangisinin daha istikrarlı olduğuna bağlı olarak selectByVisibleText, selectByValue veya selectByIndex seçeneklerinden birini seçin.
  • 🔁 Çoklu seçimli açılır menüleri yönetme: Çoklu seçimleri tespit etmek için isMultiple, önceki seçimleri temizlemek için ise deselectAll veya deselectByVisibleText işlevlerini kullanın.
  • Seçimi doğrulayın: Testin gerçekten açılır menü durumunu değiştirdiğini doğrulamak için getFirstSelectedOption işlevini çağırın.
  • 🤖 Yapay zekâ tabanlı konum belirleyicileri kullanın: Kendi kendini onaran yapay zeka konum belirleyicileri, kullanıcı arayüzü değişikliklerinden sonra bozulan seçili öğe XPath'lerini onarır, böylece sürekliliği sağlar.ping Açılır menü testleri, sürümler arasında istikrarlı bir şekilde çalışır.

Açılır menüden bir değer seçin. Selenium

Select Class nedir? Selenium?

MKS Sınıf seçin Selenium bir yardımcı sınıftır org.openqa.selenium.support.ui WebDriver'ın HTML ile etkileşim kurmasını sağlayan paket <select> Öğeleri içerir. Görünür metne, değere veya dizine göre seçenekleri seçme ve seçimden kaldırma ve bir açılır menünün birden fazla seçimi kabul edip etmediğini tespit etme yöntemlerini sunar.

Çünkü Select düzenli Java Sınıf ile bir örnek oluşturursunuz. new anahtar kelimeyi kullanın ve ona işaret eden WebElement'i iletin. <select> sayfada etiketleyin.

Açılan Menü Nasıl Seçilir Selenium

Bir açılır menüyü ele almadan önce Seleniumİki adım gereklidir:

  1. Paketi içe aktar org.openqa.selenium.support.ui.Seçin.
  2. Açılır menüyü şu şekilde örneklendirin: Select nesne Selenium WebDriver.

Örnek olarak, şunu açın: Mercury Turların Kayıt sayfası (https://demo.guru99.com/test/newtours/register.php) ve “Ülke” açılır menüsünü bulun.

Açılan menüyü seçin Selenium

Adım 1) Select paketini içe aktarın.

import org.openqa.selenium.support.ui.Select;

Adım 2) Açılan öğeyi Select sınıfının bir örneği olarak bildirin. Aşağıdaki örnekte, örnek şu şekilde adlandırılmıştır: drpCountry.

Select drpCountry = new Select(driver.findElement(By.name("country")));

Adım 3) Açılır menüyü kontrol etmeye başlayın. Bir seçenek belirlemek için herhangi bir Seçim yöntemini kullanın. Aşağıdaki örnekte "ANTARKTİKA" seçeneği seçilmiştir:

drpCountry.selectByVisibleText("ANTARCTICA");

Yöntemleri seçin Selenium

Select sınıfı, açılır menü seçenekleriyle etkileşim kurmak için çeşitli yöntemler sunar. En yaygın beş yöntem aşağıda açıklanmıştır.

1) selectByVisibleText() ve deselectByVisibleText()

  • Görüntülenen metni parametreyle eşleşen seçeneği seçer veya seçimini kaldırır.
  • Parametre: Seçenek için görüntülenen tam metin.

Örnek:

drpCountry.selectByVisibleText("ANTARCTICA");

2) selectByValue() ve deselectByValue()

  • İlgili seçeneği seçer veya seçimini kaldırır. value Öznitelik parametreyle eşleşiyor.
  • Görüntülenen metne ve şunlara dikkat edin: value Aşağıda gösterildiği gibi, özellikler genellikle farklıdır.
  • Parametre: seçeneğin value özniteliği.

selectByValue ve deselectByValue

Örnek:

drpCountry.selectByValue("234");

3) selectByIndex() ve deselectByIndex()

  • Verilen dizindeki seçeneği seçer veya seçimini kaldırır. Dizinler sıfırdan başlar.
  • Parametre: Seçeneğin tam sayı indeksi.

Örnek:

drpCountry.selectByIndex(0);

4) isMultiple()

  • Geri dönüşler TRUE Eğer açılır menü aynı anda birden fazla seçim yapılmasına izin veriyorsa, aksi takdirde FALSE.
  • Parametre: hiçbiri.

Örnek:

if (drpCountry.isMultiple()) {
    // do something here
}

5) deselectAll()

  • Seçili tüm seçenekleri temizler. Yalnızca çoklu seçim yapılabilen açılır menülerde geçerlidir.
  • Parametre: hiçbiri.

Örnek:

drpCountry.deselectAll();

Tamamla Code Seçili Yöntemler'in Selenium

Aşağıdaki Java Bu program, Select sınıfını hem tek seçimli hem de çok seçimli açılır menülerde nasıl kullanacağını göstermektedir.

package newpackage;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.By;

public class accessDropDown {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver", "C:\\geckodriver.exe");
        String baseURL = "https://demo.guru99.com/test/newtours/register.php";
        WebDriver driver = new FirefoxDriver();
        driver.get(baseURL);

        // Single-select drop-down
        Select drpCountry = new Select(driver.findElement(By.name("country")));
        drpCountry.selectByVisibleText("ANTARCTICA");

        // Multi-select drop-down
        driver.get("http://jsbin.com/osebed/2");
        Select fruits = new Select(driver.findElement(By.id("fruits")));
        fruits.selectByVisibleText("Banana");
        fruits.selectByIndex(1);
    }
}

Çoklu SELECT öğesinde öğeleri seçme

MKS selectByVisibleText() Bu yöntem, çoklu seçimli açılır menülerde de çalışır. Örnek olarak, şunu kullanın: https://jsbin.com/osebed/2 temel olarak URLBirden fazla seçeneğin aynı anda seçilebildiği bir açılır menü sunar.

Çoklu Seçim Öğesinde Öğeleri Seçme

Aşağıdaki kod parçası, ilk iki seçeneği şu şekilde seçer: selectByVisibleText():

Çoklu Seçim Öğesinde Öğeleri Seçme Kodu

Yöntem Referans Tablosu

Bu tablo, yukarıda ele alınan tüm Select sınıfı yöntemlerini hızlı arama için özetlemektedir.

Komuta Açıklama
selectByVisibleText() / deselectByVisibleText() Görüntülenen metne göre bir seçeneği seçer veya seçimini kaldırır.
selectByValue() / deselectByValue() Bir seçeneği, ilgili özelliğiyle seçer veya seçimini kaldırır. value özniteliği.
selectByIndex() / deselectByIndex() Sıfır tabanlı indeksine göre bir seçeneği seçer veya seçimini kaldırır.
isMultiple() Açılır menüde birden fazla seçim yapılabiliyorsa TRUE, aksi halde FALSE değerini döndürür.
Hiçbirini seçme() Çoklu seçimli açılır menüdeki önceden seçilmiş tüm seçeneklerin seçimini kaldırır.

Açılır kutuları kontrol etmek için, şunu içe aktarın: org.openqa.selenium.support.ui.Select Önce paketi oluşturun, ardından bir Select örneği oluşturun ve yukarıdaki yöntemlerden herhangi birini çağırın.

SSS

Select sınıfı bir Selenium HTML SELECT öğeleri için yardımcı sınıf. Bir WebElement'i sarmalar ve temiz açılır menü otomasyonu için selectByVisibleText, selectByValue, selectByIndex, isMultiple ve deselectAll işlevlerini sunar.

Değer özniteliği sabit olduğunda selectByValue'ı tercih edin, çünkü etiketler yerelleştirme nedeniyle sık sık değişir. Metin yetkili olduğunda selectByVisibleText'i kullanın ve seçenek sırası değişebileceği durumlarda selectByIndex'ten kaçının.

`Select` sınıfı yalnızca gerçek HTML `SELECT` etiketlerinde çalışır. WebElement bir `div`, `ul` veya açılır menü gibi görünecek şekilde tasarlanmış özel bir widget ise, seçeneklere WebElement.click() veya Actions API aracılığıyla tıklamanız gerekir.

Select örneği üzerinde getFirstSelectedOption() yöntemini çağırın ve getText() değerini doğrulayın. Çoklu seçimli açılır menüler için getAllSelectedOptions() yöntemini yineleyin ve döndürülen listeyi beklenen seçimlerle karşılaştırın.

Evet. Açılır menünün birden fazla değere izin verdiğini doğrulamak için isMultiple() işlevini kullanın, ardından selectByVisibleText işlevini birden fazla kez çağırın veya sıfırlamak için deselectAll() işlevini kullanın. Çoklu seçim açılır menüleri, HTML SELECT öğesinin multiple özelliğini belirtmesini gerektirir.

Seçenek bulucuda ExpectedConditions.numberOfElementsToBeMoreThan ile WebDriverWait kullanın. Bu, Select sınıfını örneklemeden ve herhangi bir seçim yöntemini çağırmadan önce eşzamansız olarak doldurulmuş açılır menülerin hazır olmasını sağlar.

Yapay zekâ destekli kendi kendini onaran konum belirleyiciler, bir SELECT öğesinin kimliğinin, adının veya XPath'inin değiştiğini algılar ve çalışan bir alternatife geçiş yapar. Bu sayede, kullanıcı arayüzü yeniden tasarımlarından sonra işlem hatlarında meydana gelen kararsız açılır menü hataları azaltılır.

Evet. Yapay zekâ kodlama asistanları, "kayıt sayfasında ANTARKTİKA ülkesini seçin" gibi basit bir İngilizce isteği, doğru konum belirleyici, selectByVisibleText çağrısı ve doğrulama ifadesi içeren eksiksiz bir Select örneğine dönüştürür.

Bu yazıyı şu şekilde özetleyin: