Selenium Çekirdek Uzantılar (User-Extensions.js)
⚡ Akıllı Özet
Selenium Çekirdek uzantıları, diğer adıyla kullanıcı uzantıları, özel eylemler, erişimciler ve konum belirleme stratejileri ekler. Selenium IDE'ye ekleyerek JavaKomut dosyası işlevleri şunlara yöneliktir: Selenium IDE başlatıldığında PageBot prototip nesneleri de oluşturulur.
Selenium Çekirdek Uzantılar
Uzantıları anlamak için öncelikle üç temel ilkeyi anlayalım. Selenium IDEIDE'de kaydettiğiniz veya yazdığınız her komut aşağıdaki üç kategoriden birine aittir ve her ekran görüntüsü, o kategorinin IDE komut listesinde nasıl göründüğünü gösterir.
- Eylem: Kullanıcı arayüzü ekranında hangi işlemi gerçekleştiriyorsunuz?
- Değerlendiriciler / İddia: Kullanıcı arayüzünden aldığınız veriler üzerinde hangi doğrulama işlemlerini gerçekleştiriyorsunuz?
- Konum Belirleme Stratejisi: Kullanıcı arayüzünde öğeyi nasıl bulursunuz?
Selenium IDE, halihazırda çok sayıda işlem, erişim yöntemi, doğrulama ve konum belirleme stratejisi içeren olgun bir kütüphane ile birlikte gelir.
Ancak bazen bir projenin, o kütüphanede bulunmayan bir işlevselliğe ihtiyacı olur. Bu durumda, kendi özel uzantınızı ekleyerek kütüphaneyi genişletebilirsiniz. Bu özel uzantılara özel eklenti denir. kullanıcı uzantısı.
Örneğin, bir web öğesine yerleştirmeden önce metni büyük harfe dönüştüren bir eyleme ihtiyacınız olduğunu varsayalım. Varsayılan kütüphanede böyle bir eylem bulunmadığından, kendi kullanıcı uzantınızı oluşturmanız gerekir. Bu eğitimde, metni büyük harfe dönüştüren bir kullanıcı uzantısı oluşturmayı öğreneceksiniz.
⚠️ Başlamadan önce: Burada açıklanan iş akışı şunlara aittir: Selenium Çekirdek ve orijinal Firefox-Eklenti Selenium IDE. Selenium Çekirdek kullanımdan kaldırıldı ve kullanıcı eklentisi desteği de sonlandırıldı. Selenium kavanozlarda Selenium 3. Aşağıdaki adımlar ve kodlar korunmuştur çünkü çok sayıda eski Selenese paketi hala bunlara bağımlıdır; modern alternatifleri bu makalenin ilerleyen bölümlerinde açıklanmıştır.
Oluşturma Gereksinimi Selenium Kullanıcı Uzantısı
Kullanıcı uzantısı oluşturmak için Selenium IDE için temel kavramlara ihtiyacınız var. JavaSenaryo ve özellikle JavaKomut dosyası prototip nesnesi. Aşağıdaki diyagram, bir kullanıcı uzantısının bağlandığı iki prototip nesnesini göstermektedir.
Kullanıcı uzantınızı oluşturmak için şunu yazarsınız: JavaKomut dosyası yöntemlerini ekleyin ve bunları şuraya ekleyin: Selenium nesne prototipine ve PageBot nesne prototipine.
Ne kadar Selenium IDE, Kullanıcı Uzantısını Tanıyor
Kullanıcı uzantısı eklendikten sonra Selenium IDE başlatıldığında, üzerinde kayıtlı her fonksiyon çalışır hale gelir. JavaKomut dosyası prototipleri yüklendi ve Selenium IDE, her birini adıyla tanır. Bu nedenle, sonraki bölümdeki adlandırma önekleri bir stil seçimi değil, IDE'nin komutunuzu sınıflandırma şeklidir.
Kullanıcı Eklentisi Nasıl Oluşturulur?
Adım 1) Eylem – tüm eylemler şununla başlar: doEğer işlem metni büyük harfe dönüştürüyorsa, adı şudur: doTextUpperCaseBu eylem yöntemini eklediğinizde... Selenium IDE, kendisi eşleşen bir bekleme yöntemi oluşturur, bu nedenle doTextUpperCase aynı zamanda bekleme fonksiyonunu da üretir. metinBüyükHarfVeBekleBu yöntem iki parametre 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 / İddia – kayıtlı tüm erişimciler Selenium Nesne prototipleri şu ön ekle başlar: almak or isÖrneğin, getValueFromCompoundTable veya isValueFromCompoundTable gibi. Bir erişimci, test durumundaki hedef ve değer alanı için iki parametre alabilir. Aşağıdaki ekran görüntüsü, uzantı yüklendikten sonra bu öneklerin nasıl göründüğünü göstermektedir.
Her bir aksesuar için, Selenium IDE, ilgili doğrulama işlevlerini önek ile birlikte oluşturur. doğrulamak hem de ileri sürmekartı başına bir bekleme fonksiyonu bekle.
Örnek: Büyük Harfli Metin Erişimcileri İç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) Konum belirleme stratejisi – Eğer bir öğeyi bulmak için kendi fonksiyonunuzu oluşturmak istiyorsanız, PageBot prototipini "function" önekiyle başlayan bir fonksiyonla genişletin. locateElementByBu fonksiyon iki parametre alır: konum belirleyici dize ve öğenin aranacağı belge.
Ö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; };
Üç fonksiyonun tamamını tek bir dosyaya kaydedin. kullanıcı-uzantıları.jsDosya sade. JavaBetik dosyası olduğu için herhangi bir metin düzenleyici yeterlidir.
Yeni Oluşturulan Çekirdek Eklentisini Nasıl Kullanabilirsiniz?
Orijinalinde dosya yükleme dört adımdan oluşan bir işlemdir. Firefox-IDE eklentisi. Aşağıdaki her ekran görüntüsü, yanındaki numaralı adıma karşılık gelir.
- MyCAD'de yazılım Güncelleme ye git Selenium IDE ve tıklayın Seçenekler -> Seçenekler…
- içinde Genel Bu bölümde, yeni oluşturulanın konumunu seçin. Selenium Çekirdek uzantısı.
- Tıkla OK ve yeniden başlat Selenium IDE.
- Uzantıyı komut listesinde bulabilirsiniz.
Selenium Çekirdek Uzantıları vs Selenium IDE Uzantıları
Eski kaynaklarda bu iki terim birbirinin yerine kullanılsa da, farklı katmanları tanımlarlar ve özel mantığı nereye yerleştireceğinize karar verirken bu ayrım önemlidir.
| Görünüş | Selenium Çekirdek uzantısı | Selenium IDE uzantısı |
|---|---|---|
| Uzantısı | Oynatma sırasında kullanılan Selenese komut kütüphanesi. | IDE uygulamasının kendisi |
| Dosya yüklendi | kullanıcı-uzantıları.js | Eski IDE'de user-extensions-ide.js, mevcut IDE'de ise bir eklenti bildirim dosyasıdır. |
| Tipik kullanım | Yeni eylemler, erişimciler ve konum belirleme stratejileri | Yeni menü öğeleri, paneller, formatlar ve kaydedici davranışı |
| Dokunulan nesneler | Selenium.prototype ve PageBot.prototype | IDE düzenleyici ve kaydedici API'leri |
| Koşular sırasında | Test yürütme | Yazma ve kayıt |
Özetle, bir Core uzantısı bir testin yapabileceklerini değiştirirken, bir IDE uzantısı aracın yapabileceklerini değiştirir.
Modern Nasıl Selenium IDE, user-extensions.js dosyasının yerini alıyor.
MKS Firefox-Eklenti Selenium IDE, çalışmayı durdurduğunda Firefox WebExtensions mimarisine geçildi ve IDE, Chrome olarak yeniden yazıldı. Firefox ve Edge tarayıcı uzantısı. Bu yeniden yazma işlemi, yukarıda gösterilen Seçenekler alanını kaldırdı, bu nedenle user-extensions.js dosyasına işaret edecek bir yer yok. Desteklenen iki alternatif aynı işlevi görüyor.
- Komut dosyasını çalıştırma komutu. Tek seferlik JavaKomut dosyasına bir tane ekleyin. komut dosyasını çalıştır or eşzamansız komut dosyasını yürüt Teste doğrudan müdahale edin ve sonucu bir değişkene kaydedin. Bu, küçük bir özel eyleme en yakın eşdeğerdir.
- Bir eklenti. Tekrar kullanılabilir komutlar için, IDE'ye bir bildirim dosyası kaydeden bir tarayıcı uzantısı oluşturun. Bildirim dosyası, her yeni komutu bir kimlik, bir ad, isteğe bağlı bir tür ve dokümantasyon ile tanımlar ve ayrıca yeni konum belirleyicileri de tanımlayabilir.
Resmi açıklamada gösterildiği gibi, manifest dosyası IDE uzantısına bir mesaj gönderilerek kaydedilir. Selenium IDE eklentisi dokümantasyonu.
browser.runtime.sendMessage(SIDE_ID, {
uri: "/register",
verb: "post",
payload: {
name: "Selenium IDE plugin",
version: "1.0.0",
commands: [
{ id: "textUpperCase", name: "text upper case" }
]
}
}).catch(console.error);
İsimlendirme disiplini geçiş sürecinde de korunuyor: bir eklenti komutu hala bir kez tanımlanıyor ve tıpkı bir Core uzantısı gibi her testte yeniden kullanılıyor.
Kullanılan Popüler Uzantılar ve Eklentiler Selenium IDE
Aşağıdaki eklentiler eski IDE'de en yaygın kullanılanlardı. Bunlardan bazıları, örneğin akış kontrolü ve başarısızlık durumunda ekran görüntüsü alma, artık mevcut IDE'ye entegre edilmiş durumda veya bakımı yapılan eklentiler olarak sunuluyor.
| İsim | Amaç |
|---|---|
| Favoriler | Bir test paketini favori olarak işaretlemek ve tek tıklamayla çalıştırmak |
| 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 | Bir öğenin belirli bir süre boyunca beklenmesi |
| 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ı | Kurtarmak test durumu Tek tıklamayla test paketinin sonucu |
eski SeleniumBu dosyaları barındıran merkez ofis indirme sayfası artık mevcut değil. Mevcut eklentiler ve IDE'nin kendisi şu adresten dağıtılıyor: Selenium IDE proje sitesi ve Chrome'dan, Firefox ve Edge eklenti mağazaları.
Atomic Cüzdanı indirin : Selenium Bu Eğitimde kullanılan Temel Uzantı









