Selenium Çekirdek Uzantılar (User-Extensions.js)
Uzantıları anlamak için önce Selenyum IDE'nin üç sütununu anlayalım
- Eylem: Kullanıcı Arayüzü Ekranında hangi işlemi gerçekleştiriyorsunuz?
- Değerlendiriciler/Onay: Kullanıcı arayüzünden aldığınız veriler üzerinde hangi doğrulamayı yapıyorsunuz?
- Konum Belirleyici Stratejisi: Öğeyi kullanıcı arayüzünde nasıl bulabiliriz.
Şimdi, Selenium IDE, çok sayıda Eylem, Onay/Değerlendirici ve Konum Belirleyici Strateji içeren oldukça olgun bir kütüphaneye sahiptir.
Ancak bazen proje gereksinimlerimiz için ona biraz daha işlevsellik eklememiz gerekir. Bu durumda özel uzantılarımızı ekleyerek bu kütüphaneyi genişletebiliriz. Bu özel uzantılara 'Kullanıcı Uzantısı' denir.
Örneğin, metni bir web elemanına doldurmadan önce büyük harfe dönüştürebilecek bir Action'a ihtiyacımız var. Bu Eylemi varsayılan Eylem kitaplığında bulamazsınız. Bu durumda kendi 'Kullanıcı Uzantınızı' oluşturabilirsiniz. Bu derste Metni Büyük Harfe dönüştürmek için kullanıcı uzantısının nasıl oluşturulacağını öğreneceğiz
Oluşturma gereksinimi Selenium kullanıcı uzantısı
Kullanıcı uzantısı oluşturmak için Selenium IDE'nin temel kavramını bilmemiz gerekiyor. JavaSenaryo ve Java Komut dosyası prototip nesnesi kavramı.
Kullanıcı uzantınızı oluşturmak için şunu oluşturmanız gerekir: Java betik yöntemlerini oluşturun ve bunları selenium nesne prototipine ve PageBot nesne prototipine ekleyin.
Ne kadar Selenium IDE Kullanıcı Uzantısını tanıyor mu?
Kullanıcı Uzantısı eklendikten sonra Selenium IDE başladığımızda Selenium IDE, javascript prototipindeki tüm bu uzantılar yüklenir ve Selenium IDE onları adlarıyla tanır.
Kullanıcı Uzantısı Nasıl Oluşturulur
Adım 1) Eylem– tüm eylemler “yap” ile başlatılır, yani eğer eylem büyük harfli metin içinse, adı şöyle olacaktır: doTextUpperCase.dll Bu eylem yöntemini eklediğimizde Selenium SDI, Selenium IDE'nin kendisi bu eylem için bir bekleme yöntemi oluşturacaktır. Yani bu durumda oluşturduğumuzda doTextUpperCase aksiyon, Selenium IDE karşılık gelen bir bekleme işlevi yaratacaktır. TextUpperCaseAndWait. İki parametreyi kabul edebilir
Örnek: Büyük Harfli Metin Eylemi
Selenium.prototype.doTextUpperCase = function(locator, text) { // Here findElement is itself capable to handle all type of locator(xpath,css,name,id,className), We just need to pass the locator text var element = this.page().findElement(locator); // Create the text to type text = text.toUpperCase(); // Replace the element text with the new text this.page().replaceText(element, text); };
Adım 2) Değerlendiriciler/Beyan- Selenyum nesne prototipinde kayıtlı tüm değerlendiricilere ön ek eklenecektir
“get” veya “is” ile Örn. getValueFromCompoundTable , isValueFromCompoundTable .Test durumunda biri hedef, diğeri değer alanı için olmak üzere iki parametre kabul edebilir.
Her Değerlendirici için, "doğrula", "assert" ön eki ve bekleme işlevi ön eki "waitFor" ile eklenmiş karşılık gelen doğrulama işlevleri olacaktır.
Örnek: Büyük Harfli Metin değerlendiricileri için
Selenium.prototype.assertTextUpperCase = function(locator, text) { // All locator-strategies are automatically handled by "findElement" var element = this.page().findElement(locator); // Create the text to verify text = text.toUpperCase(); // Get the actual element value var actualValue = element.value; // Make sure the actual value matches the expected Assert.matches(expectedValue, actualValue); }; Selenium.prototype.isTextEqual = function(locator, text) { return this.getText(locator).value===text; }; Selenium.prototype.getTextValue = function(locator, text) { return this.getText(locator).value; };
Adım 3) Konumlandırıcı stratejisi- Bir öğenin yerini tespit etmek için kendi fonksiyonumuzu oluşturmak istiyorsak o zaman
PageBot prototipini “locateElementBy” ön ekine sahip bir işlevle genişletmemiz gerekiyor.
İki parametre alacaktır, birincisi konum belirleyici dizesi ve ikincisi belge olacaktır.
nerede aranması gerekiyor.
Örnek: Büyük Harfli Metin Bulucu için
// The "inDocument" is a document you are searching. PageBot.prototype.locateElementByUpperCase = function(text, inDocument) { // Create the text to search for var expectedValue = text.toUpperCase(); // Loop through all elements, looking for ones that have // a value === our expected value var allElements = inDocument.getElementsByTagName("*"); // This star '*' is a kind of regular expression it will go through every element (in HTML DOM every element surely have a tag name like<body>,<a>,<h1>,<table>,<tr>,<td> etc. ). Here our motive is to find an element which matched with the Upper Case text we have passed so we will search it with all elements and when we get match we will have the correct web element. for (var i = 0; i < allElements.length; i++) { var testElement = allElements[i]; if (testElement.innerHTML && testElement.innerHTML === expectedValue) { return testElement; } } return null; };
Yeni oluşturulan çekirdek uzantı nasıl kullanılır?
- MyCAD'de yazılım Güncelleme ye git Selenium IDE
Seçenekler -> Seçenekler… öğesine tıklayın.
- Genel bölümünde yeni oluşturulanın konumunu seçin Selenium Çekirdek Uzantısı
- Tamam'a tıklayın ve yeniden başlatın Selenium IDE
- Uzantıyı komut listesinde bulacaksınız
Burada kullanılan popüler uzantıların/eklentilerin bir listesi bulunmaktadır. Selenium IDE
İsim | Amaç |
---|---|
Favoriler | Bir test paketini favori olarak işaretlemek ve bunları tek tıklamayla yürütmek için |
Esnek Pilot X | Flex tabanlı otomasyon için |
FlexMonkium | Adobe Flex tabanlı kayıt ve oynatma için Test yapmak in Selenium IDE |
Dosya Günlüğü | Günlükleri bir dosyaya kaydetmek için |
Akış kontrolü | Test yürütme akışını kontrol etmek için |
Öğeleri Vurgula | Bir web kontrolünü vurgulamak için |
örtük bekle | Belirli bir süre boyunca bir öğeyi beklemek için |
Başarısız Olduğunda Ekran Görüntüsü | Başarısızlık durumunda ekran görüntüsü alın |
Test Sonuçları | İndirim Test Durumu Tek tıklamayla test paketinin sonucu |
Bunların hepsine ve daha fazlasına adresinden ulaşabilirsiniz. SeleniumGenel Merkez resmi sitesinin indirme bölümü
http://docs.seleniumhq.org/download/
ÖZET
- Üç bölüm var Selenium IDE, Eylem, Değerlendiriciler/İddia, Konum Belirleyici stratejisi.
- Kullanıcı uzantısı şu durumlarda oluşturulur: Selenium IDE mevcut gereksinimi karşılamıyor.
- Kullanıcı uzantısı oluşturmak için Selenium'un nesne prototipine javascript eklemek gerekir.
- Uzantıyı oluşturduktan sonra onu eklemeniz gerekir. Selenium IDE'yi açın ve IDE'yi yeniden başlatın.
Atomic Cüzdanı indirin : Selenium Bu Eğitimde kullanılan Temel Uzantı