Selenium da Elemana Erişme
Selenium ile web nesnelerine erişmek için yapılması gerekenler.
Selenyumda Element Bulma Nedir?
Selenium otomasyon betiğinizi yazmaya başladığınızda , web öğeleriyle etkileşim ilk ve çok önemli bir adım olur çünkü bunlar, test betiğinizde oynadığınız WebElements'dir. Şimdi, bu web öğeleriyle etkileşim, yalnızca onları doğru yaklaşımı kullanarak tanımlarsanız gerçekleşebilir.
Selenium'daki Eleman Bul yöntemi, bir web öğesini tanımlamanıza yardımcı olan bir komuttur. Find Element'in, Selenium'daki Kimlik , Ad, Sınıf Adı vb.
Find Element'in sözdizimi şöyledir:
Yukarıdaki sözdiziminde gösterildiği gibi, bu komut " By " nesnesini bağımsız değişken olarak kabul eder ve bir WebElement nesnesi döndürür. " By ", bir konumlandırıcı veya sorgu nesnesidir ve konumlandırıcı stratejisini kabul eder. Konum Belirleme Stratejisi aşağıdaki değerleri alabilir:
- İD
- İsim
- Sınıf adı
- Etiket adı
- Bağlantı metni
- Kısmi Bağlantı Metni
- XPath
- CSS Seçici
- Metne Göre
Elemanı kimliğe(Id) göre bul
Hepimizin bildiği gibi, Selenium'daki kimlik bulucu, istenen WebElement'ı bir belgede (veya sayfada) bulmak için yaygın olarak kullanılan konumlayıcılardan biridir. Bir web sitesi dinamik olarak oluşturulmuş kimlikler kullanıyorsa, bu strateji benzersiz bir öğe bulamaz. Ancak yine de konumlandırıcı değeriyle eşleşen ilk web öğesini döndürür.
Örneğin, dinamik kimliği olan ve 'ID-3465-text1' olan ID'nin 'ID-4434-textE2' olarak değiştirildiği Button etiketine sahip bir web öğeniz varsa, bu gibi durumlarda, kimliği özniteliğini kullanın. Ancak, sabit kalırsa, Web Öğesini bulmak için kimliği kolayca kullanabilirsiniz.
Yukarıdaki durumda kimliği kullanan doğru yer belirleyici değeri,
Elemanı İsme (Name) Göre Bul
Selenium'daki isim bulucu, ID ile bulmaya benzer, ancak sürücü bir elemanı "id" yerine "name" özniteliğine göre bulur.
Selenium Playground'un giriş formu sayfasını görelim ve Ad, E-posta vb. giriş metin kutuları için yer belirleyiciyi yazalım.
Yukarıdaki durumda adı kullanan doğru yer belirleyici değeri şöyle olacaktır:
SınıfAdına (Class) Göre Eleman Bul
Selenium'daki ClassName bulucu, web sayfasındaki öğeleri CLASS öznitelik değerine göre bulur. Burada yer belirleyici olarak “class” özniteliğinin değeri iletilir.
Selenium Playground'un tablo sayfalandırma demo sayfasını görelim ve görüntülenen satır sayısını 10 olarak değiştirmek için açılır menü için yer belirleyiciyi yazalım.
Yukarıdaki durumda ClassName'i kullanan doğru yer belirleyici değeri şöyle olacaktır:
//if(selectDropdown.GetAttribute("class").Contains("z-tab-seld")))
//driver.findElements(By.xpath("//body[contains(@class, 'is-mobile')]"));
EtiketAdına (Tag) Göre Eleman Bul
Bir tagName, bir sayfadaki her öğenin giriş etiketi, düğme etiketi veya bağlantı etiketi vb . Selenium, elemente göre web sayfasındaki elementleri bulur.
Selenium Playground'un aynı tablo sayfalandırma demo sayfasını görelim ve etiket adını kullanarak görüntülenen satır sayısını değiştirmek için açılır menü için yer belirleyiciyi yazalım.
Yukarıdaki durumda etiket adından yararlanan doğru konumlandırıcı değeri şöyle olacaktır:
Bağlantı Metnine Göre Eleman Bul
Selenium'daki Bağlantı Metni bulucu, bir web sayfasındaki köprüleri tanımlamak için kullanılır. Bir bağlantı etiketi yardımıyla belirlenir. Bir web sayfasında köprüler oluşturmak için, bağlantı Metni tarafından takip edilen bir bağlantı etiketi kullanabiliriz.
Tam bağlantı metinlerini kullanarak bağlantılara erişim, findElement by Link Text yöntemiyle yapılır. Ancak, iki bağlantı tam olarak bağlantı metnine sahipse, bu yöntem yalnızca birincisine erişir.
Selenium Playground'un radyo düğmesi demo sayfasını görelim ve aşağıda vurgulandığı gibi ana sayfaya gitmek için kullanılan Selenium Playground hiper bağlantısı için yer belirleyiciyi yazalım.
Yukarıdaki durumda bağlantı metnini kullanan doğru yer belirleyici değeri şu olacaktır:
Kısmi Bağlantı Metnine Göre Eleman Bul
Bağlantı metinlerinin bir kısmını kullanarak bağlantılara erişim, By.partialLinkText() yöntemi kullanılarak yapılır. Birden çok eşleşmeye sahip kısmi bir bağlantı metni belirtirseniz yalnızca ilk eşleşmeye erişilir.
Selenium Playground'un aynı radyo düğmesi demo sayfasını görelim ve aşağıda vurgulandığı gibi ana sayfaya gitmek için kullanılan Selenium Playground hiper bağlantısı için yer bulucuyu yazalım. Ancak bu kez kısmi bağlantı metninden yararlanacağız.
Yukarıdaki durumda bağlantı metnini kullanan doğru konumlandırıcı değeri şöyle olacaktır:
Öğeyi CSS Seçici ile Bul
CSS Seçicileri, Selenium'da web öğelerini tanımlamak için kullanılan konum belirleme stratejilerinden biridir. Selenium'daki CSS Seçicileri bulucu , temel olarak web öğelerini HTML yapılarına göre tanımlayan karakter dizisi modelini kullanır. Selenium'da bir CSS seçici kullanarak bir öğeyi bulmak, id, ad, bağlantı vb. öznitelikleri kullanmaktan biraz daha zor görünebilir. Yine de, tutarlı HTML özniteliklerine sahip olmayan dinamik öğeleri bulmak için en etkili stratejilerden biridir. CSS Seçici sözdizimi, XPath sözdizimine oldukça benzer. Aşağıdaki gibi temsil edilebilir.
Selenium Playground'un tek onay kutusu demo sayfasını görelim ve onay kutusu için CSS seçiciyi yazalım ve daha sonra aynısını findElement kullanarak web öğesinin yerini belirlemede kullanalım.
Yukarıdaki durumda CSS seçiciyi kullanan doğru yer belirleyici değeri şöyle olacaktır:
XPath ile Eleman Bul
XML Yolu olarak da bilinen Selenium'daki XPath bulucu , bir sayfanın HTML yapısında gezinmenize yardımcı olabilecek Selenium WebDriver'da en sık kullanılan konumlayıcılardan biridir .
Selenium'daki temel XPath formatı aşağıda açıklanmıştır.
Element by XPath'ı bulmak için Case'i kullanın:
Selenium Playground'un CSS seçici, tek onay kutusu demo sayfasında gördüğümüzle aynı örneği görelim ve onay kutusu için XPath'i yazalım.
Yukarıdaki durumda XPath'i kullanan doğru yer belirleyici değeri şu olacaktır:
Bir de findElements kullanan bir uygulama görelim.
Selenium Playground'da oturum açın ve sayfadaki tüm bölüm başlıklarını listeleyin.
bulucu:
Bölüm başlıklarını XPath kullanarak incelediğimizde, aynı XPath kullanılarak birden çok öğenin döndürüldüğünü görüyoruz. Dolayısıyla bu gibi durumlarda findElements kullanmak uygun olacaktır.
Selenium'da Metne Göre Eleman Bul nedir?
Selenium'da find element ve sözdizimini bir önceki bölümde görmüştük. Şimdi, Selenium WebDriver'da öğeyi metne göre nasıl bulacağınızı merak ediyor olmalısınız.
Nasıl olduğunu merak ediyor musun? Aşağıdaki bölümlere bakalım.
Metni kullanmak için, Konumlayıcı Stratejiniz olarak XPath'ı ve Konumlayıcı Değerindeki öğenin metin özniteliğini kullanmanız gerekecektir.
Selenium'daki temel XPath formatı aşağıdaki gibidir.
Ancak, başlamadan önce, en sonunda findElement'te kullanılacak olan iki yerleşik Selenyum yöntemini anlamak önemlidir.
- text() – Bu, bir öğeyi tam metin değerine göre bulmak için XPath ile kullanılan, Selenium'da yerleşik bir yöntemdir. text() öğesini findElement ile kullanmanın sözdizimi şöyledir:
WebElement ele = driver.findElement(By.xpath(“//<tagName>[text()=’text value’]”))
- içerir() – text() yöntemine benzer şekilde, içerir(), XPath ile kullanılan başka bir yerleşik yöntemdir. Ancak bu, konumlandırıcıyı kısmi bir metin eşleşmesine dayalı olarak yazmak istediğimizde kullanılır. text() & include() öğesini findElement ile kullanmanın sözdizimi şöyledir:
WebElement ele=driver.findElement(By.xpath(“//<tagName>[contains(text(),’textvalue’)]”))
Şimdi Checkbox Demo sayfası için yer bulucuyu inceleyelim. İncelemek için Web Öğesine sağ tıklayıp İncele'ye tıklamanız yeterlidir. Öğeler sekmesinde yer belirleyicinizi yazmaya başlayabilirsiniz.
Yukarıdaki resimde gösterildiği gibi, tam bir eşleşme için Onay Kutusu Demo metnini a etiketiyle birlikte kullanıyoruz ve bu nedenle, buradaki doğru uygulama şu şekilde olacaktır:
Kısmi Metin eşleşmesi için Selenium'da Metne Göre Eleman Bul
Bu makalenin Selenium WebDriver'da metne göre öğe bulmayla ilgili önceki örneğinde, tam bir metin eşleşmesi için findElement by Text'i nasıl kullanabileceğinizi gördünüz. Bu bölümde, web öğelerini bulmak için kısmi Metin eşleşmesini nasıl kullanabileceğimizi anlayacağız.
Yukarıdaki resimde gösterildiği gibi, kısmi bir eşleşme için Tablo metnini a etiketiyle kullanıyoruz ve sonuç olarak yukarıdaki konumlandırıcıyı kullanarak toplam 5 Web Öğesi elde ediyoruz. 1'den fazla Web Elementi olduğu için bu durumda FindElements kullanacağız.
Selenium'daki FindElements, yalnızca tek bir web öğesi döndüren FindElement'in aksine size konumlandırıcı değeriyle eşleşen web öğelerinin listesini döndürür. Web sayfasında eşleşen öğe olmaması durumunda, FindElements boş bir liste döndürür.
Burada kısmi metin eşleşmesi olan FindElements kullanan doğru uygulama şu şekilde olacaktır:
Birden Fazla Aynı Özellikte Eleman Varsa
Kaynak
- https://www.lambdatest.com/blog/how-to-find-element-by-text-in-selenium/
- https://www-lambdatest-com.translate.goog/blog/findelement-and-findelements-in-selenium/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=tr
Java kurulum ve yazilim gelistirme
Bu yazı dizisi ile sıfırdan bir java yazılım geliştirme ortamı kurup temel modern bir java projesinin nasıl olusturulacagını anlatmaya calışacagım
20,878
Java Terimleri
Java, birbirinden farklı aygıtlarda çalışabilen, bu aygıtlar arasında iletişimi kolay hale getiren programlama dili ve platformudur. Java diliyle yazılmış programlar, Windows, UNIX, Mac işletim sistemi yüklü bilgisayarlarda hiç bir değişiklik yapmayı gerektirmeden çalışabilmektedirler
43,507
Java nedir, nasıl çalışır?
Java Sun microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış gerçek nesneye yönelik, platform bağımsız, yüksek performanslı, çok işlevli, yüksek seviye, interpreted[adim adim isletilen] bir dildir (son özellik, yani adım adım isletilen konusuna açıklık getirilecek)
26,320
Java 2 Standart Edition SDK Kurulum ve Java’ya Giriş
Kurulum için ilk önce Sun Microsystems’in sitesinden uygun J2SE sürümünü indirin. Ben J2SE v1. 4. 2_16 Windows Installer paketini kullandım
20,130
Stringleri Karşılaştırma
Stringler bilinen = operatörleri ile karşılaştırılmazlar, ayrıca == ve != operatörleride stringler içindeki karakterleri karşılaştırmazlar
47,304
Java Diziler
Javada diziler nesnedirler, cdeki gibi hafızada yer kaplayan pointer değillerdir. Javada diziler, cye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız. Java, dizi elemanlarını sırasıyla kontrol eder. Dolayısıyla arada değer atanmamış bir elemana rastlanırsa hata oluşur. Bu da cde çıkan hafıza bozulmalarını önler. Javada dizi kullanmak için ilk önce dizinin tipi verilir. Tip verilirken dizinin büyüklüğü belirtilmez
64,759
Class Mantıgına Kısa Bakış
Bir sınıf kendisine ait değişkenleri ve fonksiyonları olan bir kod birimidir. Sınıfın sahip olduğu fonsiyonlara method denir.
23,342 30/03/2023
Çöp Toplayıcısı
Örnekte iki döngü içerisinde toplam 11 adet olusturulannesne nesnesi oluşturulmaktadır. Bilgisayarımızda 256 mb ram bulunmaktadır; böyle bir koşulda çöp toplayıcısı devreye girmeyecektir. Nedeni ise, olusturulannesne nesnelerinin java için ayrılan bellekte yeterince yer kaplamamasındandır. Değişikbilgisayar konfigürasyonlarına, sahip sistemlerde, çöp toplayıcısı belki devreye girebilir!
17,098
Çöp Toplayıcısı
Çöp toplayıcısı tarafından silinen nesnelerden referanslı olanlarla olmayanlara uygulanan işlemi dia ile anlatınız.
16,278
Çöp Toplayıcısı Tarafından Silinen Nesnelerden Referanslı Olanlarla Olmayanlar
Çöp toplayıcısı hangi nesneleri, neye göre siler ?
18,905
Javada Diziler
Java da diziler nesnedir; içerisinde belirli sayıda eleman bulunur. Eğer bu sayı sıfır ise, dizi boş demektir. Dizinin içerisindeki elemanlara eksi olmayan bir tam sayı ile ifade edilen dizi erişim indisi ile erişilir. Bir dizide n tane eleman varsa dizinin uzunluğu da n kadardır; ilk elemanın indisi/konumu 0’dan başlar, son elemanı ise n-1’dir.
38,529
İçiçe Klaslar Oluşturmak
Komposizyon yöntemine en iyi örnek bir zamanların ünlü çizgi filmi voltran'dır. Bu çizgi filmihatırlayanlar bileceklerdir ki, büyük ve yenilmez olan robotu (voltran) oluşturmak için değişik ufakrobotlar bir araya gelmekteydi. Kollar, bacaklar, gövde ve kafa bölümü... Bizde kendi voltran robotumuzuoluşturmak istersek
18,646
Kalıtım
Kalıtım konusu nesneye yönelik programlamanın (object oriented programming) en önemli kavramlarındanbir tanesidir. Kalıtım kavramı, kısaca bir sınıftan diğer bir sınıfın türemesidir. Yeni türeyen sınıf, türetilen sınıfın global alanlarına ve yordamlarına (statik veya değil) otomatik olarak sahip olur (private olanlar hariç).
21,904