CSS Seçici Selenium
⚡ Akıllı Özet
CSS Seçici Selenium CSS Seçici, HTML etiketleri, kimlikler, sınıflar, öznitelikler ve iç metin kalıplarını kullanarak öğeleri tanımlayan güçlü bir konum belirleme stratejisidir. Bu kaynak, her CSS Seçici türünü adım adım örneklerle açıklamaktadır. Selenium IDE.

CSS Seçici nedir? Selenium?
A CSS Seçici Selenium CSS seçiciler, HTML etiketi, kimlik (id), sınıf (class) ve özniteliklerin bir kombinasyonu aracılığıyla bir web öğesini tanımlayan bir dize kalıbıdır. CSS seçiciler, kimlik veya isimle bulmaktan biraz daha gelişmiş bir yöntemdir, ancak deneyimli kullanıcılar arasında en popüler stratejidir. Selenium Kullanıcılar, ID veya Name özniteliği olmayan öğelere ulaşabildikleri için bu avantajdan faydalanırlar.
CSS Seçiciler Selenium Çeşitli şekillerde karşımıza çıkabilirler, ancak bu kılavuz en sık kullanılan beş desene odaklanmaktadır. Selenium SDI:
- Etiket ve kimlik
- Etiket ve Sınıf
- Etiket ve Özellik
- Etiket, Sınıf ve Özellik
- İç Metin
Bu stratejiyi kullanırken Selenium IDE, her zaman önekini ekler. Target kutu içindecss=Aşağıdaki her örnekte gösterildiği gibi.
CSS Seçicilerini Neden Kullanırsınız? Selenium?
CSS Seçiciler, birçok kişi için tercih edilen konum belirleme stratejisidir. Selenium Otomasyon mühendisleri için hız, esneklik ve okunabilirliği dengeledikleri için tercih edilirler. Modern web uygulamaları genellikle dinamik olarak oluşturulan kimlikleri kullanır veya ad niteliklerini tamamen kaldırır; bu da CSS Seçicilerini sayfadaki belirli bir öğeyi hedeflemenin tek güvenilir yolu haline getirir.
CSS Seçicilerini kullanmanın başlıca avantajları şunlardır:
- Performans: CSS seçicileri tarayıcının yerel motoru tarafından işlenir, bu nedenle özellikle Internet Explorer gibi eski tarayıcılarda eşdeğer XPath ifadelerinden daha hızlı çalışırlar.
- Esneklik: Etiket, sınıf, öznitelik ve kısmi eşleşme mantığını birleştirerek test uzmanlarının istikrarlı bir kimliğe sahip olmayan öğeleri hedeflemesine olanak tanırlar.
- okunabilirlik: Sözdizimi, geliştiricilerin halihazırda CSS kurallarını yazma biçimini yansıtıyor; bu da hem kalite kontrol mühendisleri hem de ön uç ekipleri için öğrenme sürecini kısaltıyor.
- Tarayıcılar arası kararlılık: CSS Seçicileri Chrome genelinde tutarlı davranır. FirefoxEdge ve Safari gibi tarayıcılarda, test hatalarının sıklığını azaltıyor.
Etiket ve Kimlik – CSS Seçici
Bu örnekte Facebook giriş sayfasındaki E-posta metin kutusu kullanılmıştır. Öğenin kimliği "E-posta", ve zaten "Kimliğe Göre Konum Belirleme" bölümünden erişilmişti. Şimdi aynı öğe, bir yöntem kullanılarak hedefleniyor. Selenium ID özniteliğine sahip CSS seçici.
Sözdizimi
css=tag#id
- tag = erişilen öğenin HTML etiketi
- # = kullanılırken her zaman bulunması gereken hashtag işareti. Selenium Kimlikli CSS Seçici
- id = erişilen öğenin kimliği
Kimliğin önünde her zaman bir karma işaretinin (#) bulunduğunu unutmayın.
) 1 Adım Şu yöne rotayı ayarla www.facebook.comTarayıcınızın Geliştirici Araçlarını (veya Firebug gibi eski bir aracı) kullanarak "E-posta veya Telefon" metin kutusunu inceleyin.
HTML etiketinin “ olduğuna dikkat edin.girişve kimlik numarası "E-postaDolayısıyla, CSS Seçici'nin tamamı şu şekilde olur:css=giriş#e-posta".
) 2 Adım Giriş "css=giriş#e-posta" içine Target kutusu Selenium IDE'yi seçin ve Bul düğmesine tıklayın. Selenium IDE, sayfadaki eşleşen öğeyi vurgular.
Etiket ve Sınıf – CSS Seçici
Bir CSS Seçici Selenium HTML etiketi ve sınıf adı kullanan yapı, etiket ve kimlik (ID) ile aynı mantığa dayanır, ancak '#' işareti yerine nokta (.) kullanılır.
Sözdizimi
css=tag.class
- tag = erişilen öğenin HTML etiketi
- . = nokta işareti; sınıf içeren bir CSS seçici kullanılırken her zaman mevcut olmalıdır.
- class = erişilen öğenin sınıfı
) 1 Adım Demo sayfasını açın https://demo.guru99.com/test/facebook.html ve “E-posta veya Telefon” metin kutusunu inceleyin. HTML etiketinin “girişve sınıfı şudur:metin girişi".
) 2 Adım In Selenium IDE'ye "css=input.inputtext" içinde Target kutusuna tıklayın ve Bul'a tıklayın. Selenium IDE, E-posta veya Telefon metin kutusunu tanır.
Birden fazla öğe aynı HTML etiketini ve sınıfını paylaştığında, kaynak kodda yalnızca ilk eşleşen öğenin tanındığını unutmayın. Aynı sayfadaki Parola metin kutusunu inceleyin ve E-posta veya Telefon metin kutusuyla aynı sınıfa ait olduğunu fark edin.
Önceki görselde yalnızca E-posta veya Telefon metin kutusu vurgulanmıştı çünkü sayfa kaynağında ilk sırada yer alıyordu.
Etiket ve Nitelik – CSS Seçici
Bu strateji, bir HTML etiketini, erişmek istediğiniz öğeye ait belirli bir öznitelikle birleştirir.
Sözdizimi
css=tag[attribute=value]
- tag = erişilen öğenin HTML etiketi
- [ ve ] = özniteliği ve ona karşılık gelen değeri çevreleyen köşeli parantezler.
- attribute = kullanılacak özellik. Ad veya kimlik gibi öğeye özgü bir özellik seçin.
- değer = seçilen özelliğin karşılık gelen değeri.
) 1 Adım gidin Mercury Turlar Kayıt sayfası https://demo.guru99.com/test/newtours/register.php ve “Soyadı” metin kutusunu inceleyin. HTML etiketini (“input”) ve ad özniteliğini (“lastName”) not edin.
) 2 Adım In Selenium IDE'ye "css=giriş[isim=soyadı]" içinde Target kutusuna tıklayın ve Bul'a tıklayın. Selenium IDE, Soyadı alanını başarıyla buldu.
Birden fazla öğe aynı HTML etiketini ve özniteliğini paylaştığında, yalnızca ilki tanınır. Davranış, aynı etiket ve sınıfa sahip öğeleri bulmakla tamamen aynıdır.
Etiket, Sınıf ve Öznitelik – CSS Seçici
Sözdizimi
css=tag.class[attribute=value]
- tag = erişilen öğenin HTML etiketi
- . = nokta işareti; sınıf içeren bir CSS seçici kullanılırken her zaman mevcut olmalıdır.
- class = erişilen öğenin sınıfı
- [ ve ] = belirli bir özniteliği ve ona karşılık gelen değeri çevreleyen köşeli parantezler.
- attribute = kullanılacak özellik. Ad veya kimlik gibi öğeye özgü bir özellik seçin.
- değer = seçilen özelliğin karşılık gelen değeri.
) 1 Adım Demo sayfasını açın https://demo.guru99.com/test/facebook.html ve “E-posta veya Telefon” ve “Şifre” giriş kutularını inceleyin. HTML etiketlerini, sınıflarını ve özelliklerini not edin. Bu örnekte “tabindex" bağlanmak.
) 2 Adım Öncelikle tabindex değeri 1 olan “E-posta veya Telefon” metin kutusuna erişin. Ardından “css=input.inputtext[tabindex=1]"İçine Selenium IDE'ler Target Kutucuğu açın ve Bul'a tıklayın. E-posta veya Telefon alanı vurgulanacaktır.
) 3 Adım Parola giriş kutusunu hedeflemek için, tabindex değerini değiştirmeniz yeterlidir. "css=input.inputtext[tabindex=2]" içinde Target kutusuna tıklayın ve Bul'a tıklayın. Selenium IDE, Parola metin kutusunu başarıyla buldu.
İç Metin – CSS Seçici
HTML etiketlerine nadiren id, name veya class öznitelikleri verilir. Peki bunlara nasıl erişilir? SeleniumCevap, iç metinlerinde gizli. İç metinler, HTML etiketinin sayfada görüntülediği gerçek metin kalıplarıdır.
Sözdizimi
css=tag:contains("inner text")
- tag = erişilen öğenin HTML etiketi
- İç metin = öğenin görünür metin içeriği
) 1 Adım gidin Mercury Turlar ana sayfası https://demo.guru99.com/test/newtours/ ve “Şifre” etiketini inceleyin. HTML etiketine (“font” bu durumda) dikkat edin ve öğenin herhangi bir sınıf, kimlik veya ad özniteliğine sahip olmadığını gözlemleyin.
) 2 Adım Menşei css=font:contains(“Şifre:”) içine Selenium IDE'ler Target kutusuna tıklayın ve Bul'a tıklayın. Selenium IDE, aşağıda gösterildiği gibi Parola etiketini bulur.
) 3 Adım Bu sefer iç metni "Boston" ile değiştirin, böylece Target "olur"css=font:contains(“Boston”)"Bul'a tıklayın. "Boston'dan San Francisco'ya" etiketi vurgulanarak şunu gösterir: Selenium IDE, etiket içeriğinin yalnızca ilk kelimesi girildiğinde bile uzun bir etiketi bulabilir.
CSS Seçici ve XPath Karşılaştırması Selenium
Hem CSS seçicileri hem de XPath, web öğelerini tanımlamak için kullanılır. SeleniumAncak, farklı güçlü yönleri vardır. Aşağıdaki tablo, iki konum belirleme stratejisini temel boyutlarda karşılaştırmaktadır:
| Kriterler | CSS Seçici | XPath |
|---|---|---|
| hız | Daha hızlı, tarayıcının yerel motorunda çalışır. | Özellikle eski tarayıcılarda daha yavaş. |
| Kullanım Şekli | Yalnızca ilet (ebeveynden çocuğa) | İleri ve geri (çocuktan ebeveyne) |
| Sözdizimi | Daha kısa ve CSS kurallarına benzer. | Daha uzun, hiyerarşik yol ifadeleri |
| Metin eşleştirme | :contains() sözde sınıfıyla sınırlıdır. | Güçlü text() ve contains() fonksiyonları |
| İçin en iyisi | Statik düzenler ve modern web uygulamaları | Karmaşık DOM dolaşımı ve metin tabanlı konum belirleyiciler |
CSS Seçicilerini Yazmak İçin En İyi Uygulamalar Selenium
Güvenilir CSS seçicileri yazmak, sadece sözdizimini bilmekten daha fazlasını gerektirir. Aşağıdaki uygulamalar, test uzmanlarının istikrarlı ve sürdürülebilir seçiciler oluşturmasına yardımcı olur. Selenium Kullanıcı arayüzü değişikliklerinden etkilenmeyen komut dosyaları:
- Benzersiz özelliklere öncelik verin: Otomasyon için özel olarak eklenen id, data-test-id veya name özelliklerini her zaman seçin. Görsel düzen değişse bile bunlar sabit kalır.
- Aşırı iç içe geçmiş seçicilerden kaçının: Uzun zincirler gibi
div > div > ul > li > aGeliştiriciler işaretlemeyi yeniden düzenlediğinde kolayca bozulabilir. Seçicileri mümkün olduğunca kısa tutun. - Kısmi eşleşmeleri akıllıca kullanın: Gibi desenler
[class*="btn-primary"]Sınıf adlarında yapılan küçük değişikliklere tolerans gösterirler, ancak istenmeyen öğelerle de eşleşebilirler. - İndeks tabanlı konum belirleyicilerden kaçının: Seçiciler gibi
nth-child(3)Bir kardeş öğe eklemek her pozisyonu değiştirdiği için kırılgandırlar. - Geliştirici Araçları'nda seçicileri doğrulayın: çalıştırmadan önce Selenium Komut dosyasını kullanarak seçiciyi Chrome Geliştirici Araçları Konsoluna yapıştırın.
document.querySelector()Tam olarak bir öğe döndürdüğünü doğrulamak için. - Benzersizlik için özellikleri birleştirin: Bir sınıf birçok öğe tarafından paylaşıldığında, aşağıdaki gibi bir öznitelik filtresi ekleyin:
input.form-control[name="email"]Hedefi netleştirmek için. - Belgeleme ve yeniden kullanım: Sayfa Nesnesi sınıfı içindeki seçicileri merkezileştirerek, tek bir güncelleme ile aynı öğeye referans veren her testin düzeltilmesini sağlayın.
Bu yönergeleri takip etmek, kararsızlığı azaltır, test yürütme hızını artırır ve Selenium Süitlerin zaman içinde bakımı daha kolaydır.
Özet: CSS Seçici Sözdizimi Hızlı Referans Kılavuzu
Aşağıdaki tablo her şeyi bir araya getiriyor. Selenium Bu kılavuzda ele alınan CSS Seçici kalıbı:
| Yöntem | Target Sözdizimi | Örnek E-posta |
|---|---|---|
| Etiket ve kimlik | css=etiket#id | css=giriş#e-posta |
| Etiket ve Sınıf | css=tag.class | css=input.inputtext |
| Etiket ve Özellik | css=etiket[özellik=değer] | css=giriş[isim=soyadı] |
| Etiket, Sınıf ve Özellik | css=tag.class[öznitelik=değer] | css=input.inputtext[tabindex=1] |
| İç Metin | css=etiket:içerir("metin") | css=font:contains(“Şifre:”) |














