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