Konumlandırıcılar Selenium
Konum Belirleyiciler nedir?
Konum belirleyici, şunu söyleyen bir komuttur: Selenium IDE hangi GUI öğeleri (Metin deyin) Box, Düğmeler, Kontrol Et Boxes vb.) üzerinde çalışması gerekir. Doğru GUI öğelerinin tanımlanması, bir otomasyon betiği oluşturmanın ön koşuludur. Ancak GUI öğelerinin doğru tanımlanması, kulağa geldiğinden daha zordur. Bazen, yanlış GUI öğeleriyle veya hiç öğe olmadan çalışırsınız! Bu nedenle, Selenium Bir GUI öğesini tam olarak bulmak için bir dizi Konum Belirleyici sağlar
Konum bulucuya ihtiyaç duymayan komutlar vardır ("aç" komutu gibi). Ancak bunların çoğunun öğe konumlandırıcılara ihtiyacı vardır. Selenium web sürücüsü.
Konum bulucunun seçimi büyük ölçüde Test Edilen Uygulamanıza bağlıdırBu eğitimde, bu uygulamaların desteklediği konum belirleyicilere göre Facebook, new tours.demoaut arasında geçiş yapacağız. Aynı şekilde sizin Test yapmak projenizde yukarıda listelenen eleman konumlayıcılardan herhangi birini seçeceksiniz. Selenium web sürücüsü, uygulama desteğinize göre.
Kimliğe göre bulma
Kimliklerin her öğe için benzersiz olması gerektiğinden, öğeleri bulmanın en yaygın yolu budur.
Target Biçim: id=öğenin kimliği
Bu örnekte test uygulamamız olarak Facebook'u kullanacağız çünkü Mercury Turlar kimlik özelliklerini kullanmaz.
) 1 Adım Bu eğitim oluşturulduğundan beri Facebook, Giriş Sayfası Tasarımını değiştirdi. Bu demo sayfasını kullanın https://demo.guru99.com/test/facebook.html test için. Firebug kullanarak “E-posta veya Telefon” metin kutusunu inceleyin ve kimliğini not edin. Bu durumda, kimlik “e-posta”dır.
) 2 Adım Başlatmak Selenium IDE'ye girin ve "id=email" girin Target kutu. Bul düğmesine tıklayın ve "E-posta veya Telefon" metin kutusunun sarı ile vurgulandığını ve yeşil ile çevrelendiğini fark edin, bu da, Selenium IDE bu öğeyi doğru bir şekilde bulmayı başardı.
İsme Göre Konum Bulma
Öğeleri ada göre bulmak, kimliğe göre bulmaya çok benzer, tek farkı, “isim=” bunun yerine önek.
Target Biçim: name=öğenin adı
Aşağıdaki gösteride, artık şunu kullanacağız: Mercury Turlar çünkü tüm önemli unsurların isimleri vardır.
) 1 Adım Şu yöne rotayı ayarla https://demo.guru99.com/test/newtours/ ve "Kullanıcı Adı" metin kutusunu incelemek için Firebug'ı kullanın. Ad özniteliğine dikkat edin.
Burada elemanın isminin “userName” olduğunu görüyoruz.
) 2 Adım In Selenium IDE'ye “ad=kullanıcıAdı” girin. Target kutusuna tıklayın ve Bul butonuna tıklayın. Selenium IDE, Kullanıcı Adı metin kutusunu vurgulayarak bulabilmelidir.
Filtreleri Kullanarak Öğeyi Ada Göre Bulma
Birden fazla öğe aynı ada sahip olduğunda filtreler kullanılabilir. Filtreler, aynı ada sahip öğeleri ayırt etmek için kullanılan ek özelliklerdir.
Target oluşturulan: name=elementin_filtresinin_adı=filtrenin_değeri
Bir örnek görelim –
) 1 Adım Oturum aç Mercury turlar.
Oturum aç Mercury Kullanıcı adı ve şifre olarak “öğretici”yi kullanan turlar. Sizi aşağıda gösterilen Uçuş Bulucu sayfasına yönlendirecektir.
) 2 Adım Firebug'u kullanarak VALUE özniteliklerini kullanın.
Firebug'u kullanarak, Gidiş-Dönüş ve Tek Yön radyo düğmelerinin aynı "tripType" adına sahip olduğuna dikkat edin. Ancak bunların VALUE özellikleri farklı olduğundan her birini filtremiz olarak kullanabiliriz.
) 3 Adım İlk satıra tıklayın.
- İlk önce One Way radyo düğmesine erişeceğiz. Düzenleyicideki ilk satırı tıklayın.
- Komut kutusunda Selenium IDE'ye “tıkla” komutunu girin.
- içinde Target kutusuna “name=tripType value=oneway” girin. “value=oneway” kısmı bizim filtremizdir.
) 4 Adım Bul düğmesini tıklayın.
Dikkat edin Selenium IDE, Tek Yönlü radyo düğmesini yeşil ile vurgulayabilir; bu, öğeye VALUE özelliğini kullanarak başarılı bir şekilde erişebildiğimiz anlamına gelir.
) 5 Adım Tek Yönlü radyo düğmesini seçin.
Bu tıklama komutunu yürütmek için klavyenizdeki “X” tuşuna basın. Tek Yönlü radyo düğmesinin seçildiğine dikkat edin.
Hedefiniz olarak "name=tripType value=gidiş dönüş" seçeneğini kullanarak, bu kez Gidiş Dönüş radyo düğmesiyle de aynı şeyi yapabilirsiniz.
Bağlantı Metnine Göre Konumlandırma
Bu tür CSS bulucu Selenium yalnızca köprü metinleri için geçerlidir. Bağlantıya, hedefimizin önüne "link=" ekleyerek ve ardından köprü metnini ekleyerek erişiriz.
Target oluşturulan: bağlantı=bağlantı_metni
Bu örnekte “KAYIT OLUN” linkine ulaşacağız. Mercury Turlar ana sayfası.
) 1 Adım
- Öncelikle oturumunuzu kapattığınızdan emin olun. Mercury turlar.
- MyCAD'de yazılım Güncelleme ye git Mercury Turlar ana sayfası.
) 2 Adım
- Firebug'u kullanarak “KAYIT” bağlantısını inceleyin. Bağlantı metni ve etiketleri arasında bulunur.
- Bu durumda bağlantı metnimiz “KAYDOL” olacaktır. Bağlantı metnini kopyalayın.
) 3 Adım Bağlantı metnini Firebug'a kopyalayın ve yapıştırın Selenium IDE'ler Target kutu. Önüne “link=" ekleyin.
) 4 Adım Bul düğmesine tıklayın ve şunu fark edin: Selenium IDE, REGISTER bağlantısını doğru bir şekilde vurgulamayı başardı.
) 5 Adım Daha detaylı doğrulama yapmak için Komut kutusuna “clickAndWait” yazıp çalıştırın. Selenium IDE bu KAYIT bağlantısını başarıyla tıklayıp sizi aşağıda gösterilen Kayıt sayfasına yönlendirebilmelidir.
DOM'a (Belge Nesne Modeli) Göre Konumlandırma
The Belge Nesne Modeli (DOM)Basit bir ifadeyle HTML öğelerinin yapılandırılma şeklidir. Selenium IDE, sayfa öğelerine erişimde DOM'u kullanabilir. Bu yöntemi kullanırsak, Target kutu her zaman “dom=document…” ile başlayacaktır; ancak, “dom=” öneki normalde kaldırılır çünkü Selenium IDE, "belge" anahtar sözcüğüyle başlayan her şeyi DOM içindeki bir yol olarak otomatik olarak yorumlayabilir. Selenium neyse.
Bir öğeyi DOM aracılığıyla bulmanın dört temel yolu vardır. Selenium:
- getElementById
- getElementsByName
- dom:name (yalnızca adlandırılmış formdaki öğeler için geçerlidir)
- dom:dizin
DOM'a göre bulma – getElementById
DOM'un getElementById yöntemini kullanarak ilk yönteme odaklanalım. Selenium. Sözdizimi şöyle olacaktır:
Sözdizimi
document.getElementById("id of the element")
- elemanın kimliği = bu, erişilecek elemanın kimlik özelliğinin değeridir. Bu değer her zaman bir çift parantez (“”) içine alınmalıdır.
) 1 Adım Bu demo sayfasını kullanın https://demo.guru99.com/test/facebook.html Oraya gidin ve Firebug'ı kullanarak "Oturumumu açık tut" onay kutusunu inceleyin. Kimliğini not edin.
Kullanmamız gereken ID'nin “persist_box” olduğunu görebiliyoruz.
) 2 Adım Açılış Selenium IDE ve Target kutusuna “document.getElementById(“persist_box”)” yazın ve Bul’a tıklayın. Selenium IDE, "Oturumumu açık tut" onay kutusunu bulabilmelidir. Onay kutusunun içini vurgulayamasa da, Selenium IDE, aşağıda gösterildiği gibi yine de öğeyi parlak yeşil bir kenarlıkla çevreleyebilir.
DOM'a göre bulma – getElementsByName
getElementById yöntemi aynı anda yalnızca bir öğeye erişebilir ve bu, belirttiğiniz kimliğe sahip öğedir. getElementsByName yöntemi farklıdır. Belirttiğiniz ada sahip bir dizi öğeyi toplar. Bireysel öğelere 0'dan başlayan bir dizin kullanarak erişirsiniz.
getElementById
|
|
getElementsByName
|
Sözdizimi
document.getElementsByName(“name“)[index]
- name = öğenin 'name' özelliği tarafından tanımlanan adı
- index = getElementsByName dizisindeki hangi öğenin kullanılacağını belirten bir tamsayı.
) 1 Adım Şu yöne rotayı ayarla Mercury Tours'un Ana Sayfasına gidin ve kullanıcı adı ve şifre olarak “öğretici”yi kullanarak giriş yapın. Firefox sizi Uçuş Bulucu ekranına götürmelidir.
) 2 Adım Firebug'u kullanarak sayfanın alt kısmındaki üç radyo düğmesini inceleyin (Ekonomi sınıfı, Business sınıfı ve Birinci sınıf radyo düğmeleri). Hepsinin aynı adı taşıyan “servClass” olduğuna dikkat edin.
) 3 Adım Önce “Ekonomi sınıfı” radyo düğmesine erişelim. Bu üç radyo düğmesinden bu öğe ilk sırada gelir, dolayısıyla dizini 0'dır. Selenium IDE'ye “document.getElementsByName(“servClass”)[0]” yazın ve Bul düğmesine tıklayın. Selenium IDE, Ekonomi sınıfı radyo düğmesini doğru şekilde tanımlayabilmelidir.
) 4 Adım Dizin numarasını 1 olarak değiştirin, böylece Target artık document.getElementsByName(“servClass”)[1] haline gelecektir. Bul düğmesini tıklayın ve Selenium IDE, aşağıda gösterildiği gibi "İşletme sınıfı" radyo düğmesini vurgulayabilmelidir.
DOM'a göre konumlandırma – dom:name
Daha önce de belirtildiği gibi, bu yöntem yalnızca eriştiğiniz öğenin adlandırılmış bir formda yer alması durumunda uygulanacaktır.
Sözdizimi
document.forms[“name of the form“].elements[“name of the element“]
- formun adı = erişmek istediğiniz öğeyi içeren form etiketinin name özelliğinin değeri
- elementin adı = erişmek istediğiniz elementin name özelliğinin değeri
) 1 Adım Şu yöne rotayı ayarla Mercury Turlar ana sayfası https://demo.guru99.com/test/newtours/ ve Kullanıcı Adı metin kutusunu incelemek için Firebug'ı kullanın. "home" adlı bir formda yer aldığını fark edin.
) 2 Adım In Selenium IDE'ye “document.forms[“home”].elements[“userName”]” yazın ve Bul düğmesine tıklayın. Selenium IDE öğeye başarıyla erişebilmelidir.
DOM'a göre konumlandırma – dom:index
Bu yöntem, öğe adlandırılmış bir formda olmasa bile geçerlidir çünkü formun adını değil dizinini kullanır.
Sözdizimi
document.forms[index of the form].elements[index of the element]
- formun dizini = formun tüm sayfaya göre dizin numarası (0'dan başlayarak)
- elemanın indeksi = onu içeren formun tamamına göre elemanın indeks numarası (0'dan başlayarak)
"Telefon" metin kutusuna erişeceğiz Mercury Tur Kayıt sayfası. O sayfadaki formun name ve ID özelliği yok, dolayısıyla bu iyi bir örnek olacaktır.
) 1 Adım Şu yöne rotayı ayarla Mercury Tur Kayıt sayfasına gidin ve Telefon metin kutusunu inceleyin. Bunu içeren formun ID ve name özniteliklerinin olmadığını fark edin.
) 2 Adım "document.forms[0].elements[3]" ifadesini girin Selenium IDE'ler Target kutusuna tıklayın ve Bul butonuna tıklayın. Selenium IDE'nin Telefon metin kutusuna doğru bir şekilde erişebilmesi gerekir.
) 3 Adım Alternatif olarak, indeksi yerine elemanın adını kullanabilir ve aynı sonucu elde edebilirsiniz. “document.forms[0].elements[“telefon”]” girin Selenium IDE'ler Target Telefon metin kutusu hala vurgulanmış olmalıdır.
XPath ile konum belirleme
XPath, XML (Genişletilebilir İşaretleme Dili) düğümlerini bulurken kullanılan dildir. HTML, XML'in bir uygulaması olarak düşünülebileceğinden, şunu da kullanabiliriz: XPath HTML öğelerini bulmada.
- avantajı: Sınıf, isim veya kimlik nitelikleri olmayanlar da dahil olmak üzere hemen hemen her öğeye erişebilir.
- Dezavantajı: Çok fazla farklı kural ve husus nedeniyle elemanları tanımlamanın en karmaşık yöntemidir.
Neyse ki Firebug otomatik olarak XPath oluşturabilir Selenium konum belirleyiciler. Aşağıdaki örnekte, daha önce tartıştığımız yöntemlerle erişilmesi mümkün olmayan bir görüntüye erişeceğiz.
) 1 Adım Şu yöne rotayı ayarla Mercury Tours Ana Sayfası'na gidin ve sarı "Bağlantılar" kutusunun sağındaki turuncu dikdörtgeni incelemek için Firebug'ı kullanın. Aşağıdaki görüntüye bakın.
) 2 Adım Öğenin HTML koduna sağ tıklayın ve ardından “XPath'i Kopyala” seçeneğini seçin.
) 3 Adım In Selenium IDE, alana bir eğik çizgi “/” yazın Target Ardından önceki adımda kopyaladığımız XPath'i yapıştırın. Sizin içindeki giriş Target kutu artık iki eğik çizgi “//” ile başlamalı.
) 4 Adım Bul düğmesine tıklayın. Selenium IDE aşağıda gösterildiği gibi turuncu kutuyu vurgulayabilmelidir.
ÖZET
Konum Bulucu Kullanımı için Sözdizimi
Yöntem | Target Sözdizimi | Örnek E-posta |
---|---|---|
Kimliğe göre | id= id_of_the_element | id=e-posta |
İsimle | name=elementin_adı | isim=kullanıcıAdı |
Ada Göre Filtreleri Kullanma | name=elementin_filtresinin_adı=filtrenin_değeri | name=tripType değeri=tek yön |
Bağlantı Metnine Göre | bağlantı=bağlantı_metni | bağlantı=KAYIT OLUN |