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.

Kimliğe göre bulma

) 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ı.

Kimliğe göre bulma

İ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.

İsme Göre Konum Bulma

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.

İsme Göre Konum Bulma

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.

Filtreleri Kullanarak Öğeyi Ada Göre Bul

) 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.

Filtreleri Kullanarak Öğeyi Ada Göre Bul

) 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.

Filtreleri Kullanarak Öğeyi Ada Göre Bul

) 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.

Filtreleri Kullanarak Öğeyi Ada Göre Bul

) 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.

Filtreleri Kullanarak Öğeyi Ada Göre Bul

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.

Bağlantı Metnine Göre Konumlandırma

) 3 Adım Bağlantı metnini Firebug'a kopyalayın ve yapıştırın Selenium IDE'ler Target kutu. Önüne “link=" ekleyin.

Bağlantı Metnine Göre Konumlandırma

) 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ı.

Bağlantı Metnine Göre Konumlandırma

) 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.

Bağlantı Metnine Göre Konumlandırma

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.

DOM'a göre bulma – getElementById

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 – getElementById

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.

DOM'a göre bulma – getElementsByName

getElementById

  • Sizin için yalnızca bir öğe alacaktır.
  • Bu öğe, getElementById() işlevinin parantezleri içinde belirttiğiniz kimliği taşır.

DOM'a göre bulma – getElementsByName

getElementsByName

  • İsimleri aynı olan bir element koleksiyonu elde edecek.
  • Her eleman tıpkı bir dizi gibi 0'dan başlayan bir sayı ile indekslenir
  • Aşağıdaki getElementsByName sözdiziminde köşeli parantez içine indeks numarasını koyarak hangi öğeye erişmek istediğinizi belirtebilirsiniz.

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.

DOM'a göre bulma – getElementsByName

) 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.

DOM'a göre bulma – getElementsByName

) 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 bulma – getElementsByName

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.

DOM'a göre konumlandırma – dom:name

) 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:name

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.

DOM'a göre konumlandırma – dom:index

) 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.

DOM'a göre konumlandırma – dom:index

) 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.

DOM'a göre konumlandırma – dom:index

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.

XPath ile konum belirleme

) 2 Adım Öğenin HTML koduna sağ tıklayın ve ardından “XPath'i Kopyala” seçeneğini seçin.

XPath ile konum belirleme

) 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ı.

XPath ile konum belirleme

) 4 Adım Bul düğmesine tıklayın. Selenium IDE aşağıda gösterildiği gibi turuncu kutuyu vurgulayabilmelidir.

XPath ile konum belirleme

Ö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