İletki - Core APIS
Bu bölüm, iletki işleyişinin anahtarı olan çeşitli temel API'leri anlamanıza olanak tanır.
İletki API'lerinin Önemi
İletki, web sitesinin mevcut durumunu elde etmek için aşağıdaki eylemleri gerçekleştirmek için çok önemli olan geniş bir API yelpazesi sunar -
- Test edeceğimiz web sayfasının DOM öğelerini almak.
- DOM öğeleriyle etkileşim.
- Onlara eylemler atamak.
- Onlarla bilgi paylaşmak.
Yukarıdaki görevleri gerçekleştirmek için, Açıölçer API'lerini anlamak çok önemlidir.
Çeşitli Açıölçer API'leri
İletki'nin Node.js için WebDriver bağlamaları olan Selenium-WebDriver etrafında bir sarmalayıcı olduğunu bildiğimiz gibi. İletki aşağıdaki API'lere sahiptir -
Tarayıcı
Gezinme, sayfa çapında bilgiler vb. Gibi tarayıcı düzeyinde komutları işlemek için kullanılan bir WebDriver örneğinin etrafındaki bir sarmalayıcıdır. Örneğin, browser.get yöntemi bir sayfayı yükler.
Eleman
Test ettiğimiz sayfadaki DOM öğesini aramak ve onunla etkileşim kurmak için kullanılır. Bu amaçla, elemanı bulmak için bir parametreye ihtiyaç duyar.
Konumlayıcılar (tarafından)
Öğe bulma stratejilerinin bir koleksiyonudur. Öğeler, örneğin, CSS seçici tarafından, kimlik ile veya ng modeliyle bağlı oldukları diğer herhangi bir öznitelikle bulunabilir.
Daha sonra, bu API'ler ve işlevleri hakkında ayrıntılı olarak tartışacağız.
Tarayıcı API
Yukarıda tartışıldığı gibi, tarayıcı seviyesindeki komutları işlemek için bir WebDriver örneği etrafında bir sarmalayıcıdır. Aşağıdaki gibi çeşitli işlevleri yerine getirir -
Fonksiyonlar ve Açıklamaları
ProtractorBrowser API'nin işlevleri aşağıdaki gibidir−
browser.angularAppRoot
Tarayıcı API'sinin bu işlevi, üzerinde Angular'ı bulacağımız bir öğe için CSS seçiciyi ayarlar. Genellikle, bu işlev 'body'de bulunur, ancak bizim ng-uygulamamız olması durumunda, sayfanın bir alt bölümünde yer alır; aynı zamanda bir alt eleman da olabilir.
browser.waitForAngularEnabled
Tarayıcı API'sinin bu işlevi doğru veya yanlış olarak ayarlanabilir. Adından da anlaşılacağı gibi, bu işlev yanlış olarak ayarlanmışsa, İletki, tarayıcıyla etkileşim kurmadan önce Angular $ http ve $ zaman aşımı görevlerinin tamamlanmasını beklemeyecektir. Bir değer iletmeden waitForAngularEnabled () 'ı çağırarak mevcut durumu değiştirmeden de okuyabiliriz.
browser.getProcessedConfig
Bu tarayıcı API'leri işlevinin yardımıyla, şu anda çalıştırılmakta olan spesifikasyon ve yetenekler dahil olmak üzere işlenmiş yapılandırma nesnesini alabiliriz.
browser.forkNewDriverInstance
Adından da anlaşılacağı gibi bu işlev, etkileşimli testlerde kullanılmak üzere başka bir tarayıcı örneğini çatallayacaktır. Kontrol akışı etkin ve devre dışı bırakılarak çalıştırılabilir. Her iki durum için de örnek aşağıda verilmiştir -
Example 1
Koşu browser.forkNewDriverInstance() kontrol akışı etkinken -
var fork = browser.forkNewDriverInstance();
fork.get(‘page1’);
Example 2
Koşu browser.forkNewDriverInstance() kontrol akışı devre dışı bırakılmış -
var fork = await browser.forkNewDriverInstance().ready;
await forked.get(‘page1’);
browser.restart
Adından da anlaşılacağı gibi, tarayıcı örneğini kapatarak ve yenisini oluşturarak tarayıcıyı yeniden başlatacaktır. Ayrıca, kontrol akışı etkin ve devre dışı bırakılarak da çalışabilir. Her iki durum için de örnek aşağıda verilmiştir -
Example 1 - Koşu browser.restart() kontrol akışı etkinken -
browser.get(‘page1’);
browser.restart();
browser.get(‘page2’);
Example 2 - Koşu browser.forkNewDriverInstance() kontrol akışı devre dışı bırakılmış -
await browser.get(‘page1’);
await browser.restart();
await browser.get(‘page2’);
browser.restartSync
Browser.restart () işlevine benzer. Tek fark, yeni tarayıcı örneğine çözümleme sözü vermek yerine yeni tarayıcı örneğini doğrudan döndürmesidir. Yalnızca kontrol akışı etkinleştirildiğinde çalışabilir.
Example - Koşu browser.restartSync() kontrol akışı etkinken -
browser.get(‘page1’);
browser.restartSync();
browser.get(‘page2’);
browser.useAllAngular2AppRoots
Adından da anlaşılacağı gibi, yalnızca Angular2 ile uyumludur. Öğeleri bulurken veya kararlılığı beklerken sayfada bulunan tüm açısal uygulamaları arayacaktır.
browser.waitForAngular
Bu tarayıcı API işlevi, WebDriver'a Angular'ın işlemeyi bitirmesini ve devam etmeden önce bekleyen $ http veya $ zaman aşımı çağrıları bulunmayana kadar beklemesini söyler.
browser.findElement
Adından da anlaşılacağı gibi, bu tarayıcı API işlevi, öğe aramadan önce Angular'ın işlemeyi bitirmesini bekler.
browser.isElementPresent
Adından da anlaşılacağı gibi, bu tarayıcı API işlevi öğenin sayfada bulunup bulunmadığını test edecektir.
browser.addMockModule
Protractor.get yöntemi her çağrıldığında Angular'dan önce yüklenecek bir modül ekleyecektir.
Example
browser.addMockModule('modName', function() {
angular.module('modName', []).value('foo', 'bar');
});
browser.clearMockModules
browser.addMockModule'den farklı olarak, kayıtlı sahte modüllerin listesini temizleyecektir.
browser.removeMockModule
Adından da anlaşılacağı gibi, bir kayıt sahte modülleri kaldıracaktır. Örnek: browser.removeMockModule ('modName');
browser.getRegisteredMockModules
Browser.clearMockModule'ün aksine, kayıtlı sahte modüllerin listesini alacaktır.
browser.get
Tarayıcıyı belirli bir web adresine götürmek ve Angular yüklemeden önce o sayfa için sahte modülleri yüklemek için browser.get () kullanabiliriz.
Example
browser.get(url);
browser.get('http://localhost:3000');
// This will navigate to the localhost:3000 and will load mock module if needed
browser.refresh
Adından da anlaşılacağı gibi, bu mevcut sayfayı yeniden yükleyecek ve Angular'dan önce sahte modülleri yükleyecektir.
browser.navigate
Adından da anlaşılacağı gibi, gezinme yöntemlerini daha önce olduğu gibi çağrılmaları için yeniden gezinme nesnesine karıştırmak için kullanılır. Örnek: driver.navigate (). Renew ().
browser.setLocation
Sayfa içi navigasyonu kullanarak başka bir sayfaya göz atmak için kullanılır.
Example
browser.get('url/ABC');
browser.setLocation('DEF');
expect(browser.getCurrentUrl())
.toBe('url/DEF');
ABC'den DEF sayfasına gidecektir.
browser.debugger
Adından da anlaşılacağı gibi, bu, iletki hata ayıklama ile kullanılmalıdır. Bu işlev, temel olarak testi duraklatmak ve tarayıcıya yardımcı işlevleri enjekte etmek için kontrol akışına bir görev ekler, böylece hata ayıklama tarayıcı konsolunda yapılabilir.
browser.pause
WebDriver testlerinde hata ayıklamak için kullanılır. Kullanabilirizbrowser.pause() bizim testimizde kontrol akışındaki o noktadan iletki hata ayıklayıcısına girmek için.
Example
element(by.id('foo')).click();
browser.pause();
// Execution will stop before the next click action.
element(by.id('bar')).click();
browser.controlFlowEnabled
Kontrol akışının etkinleştirilip etkinleştirilmediğini belirlemek için kullanılır.