Busur derajat - Inti APIS

Bab ini memungkinkan Anda memahami berbagai API inti yang merupakan kunci fungsi busur derajat.

Pentingnya API Busur Derajat

Busur derajat memberi kami berbagai macam API yang sangat penting untuk melakukan tindakan berikut untuk mendapatkan keadaan situs web saat ini -

  • Mendapatkan elemen DOM dari halaman web yang akan kita uji.
  • Berinteraksi dengan elemen DOM.
  • Menetapkan tindakan untuk mereka.
  • Berbagi informasi kepada mereka.

Untuk melakukan tugas di atas, sangat penting untuk memahami API Protractor.

Berbagai API Busur Derajat

Seperti yang kita ketahui bahwa Protractor adalah pembungkus di sekitar Selenium-WebDriver yang merupakan binding WebDriver untuk Node.js. Busur derajat memiliki API berikut -

Browser

Ini adalah pembungkus di sekitar contoh WebDriver yang digunakan untuk menangani perintah tingkat browser seperti navigasi, informasi seluruh halaman, dll. Misalnya, metode browser.get memuat halaman.

Elemen

Ini digunakan untuk mencari dan berinteraksi dengan elemen DOM di halaman yang kami uji. Untuk tujuan ini, diperlukan satu parameter untuk menemukan elemen.

Locators (oleh)

Ini adalah kumpulan strategi pelacak elemen. Elemen-elemen tersebut, misalnya, dapat ditemukan oleh pemilih CSS, berdasarkan ID atau dengan atribut lain yang terikat dengan ng-model.

Selanjutnya, kita akan membahas secara detail tentang API ini dan fungsinya.

API browser

Seperti dibahas di atas, ini adalah pembungkus di sekitar instance WebDriver untuk menangani perintah level browser. Itu melakukan berbagai fungsi sebagai berikut -

Fungsi dan Deskripsinya

Fungsi ProtractorBrowser API adalah sebagai berikut-

browser.angularAppRoot

Fungsi API Browser ini menyetel pemilih CSS untuk elemen yang akan kita temukan Angular. Biasanya, fungsi ini ada di 'body', tetapi jika ng-app kita, itu ada di sub-bagian halaman; mungkin juga sub-elemen.

browser.waitForAngularEnabled

Fungsi API Browser ini dapat disetel ke benar atau salah. Seperti namanya, jika fungsi ini disetel ke false maka Protractor tidak akan menunggu tugas Angular $ http dan $ timeout selesai sebelum berinteraksi dengan browser. Kita juga bisa membaca keadaan saat ini tanpa mengubahnya dengan memanggil waitForAngularEnabled () tanpa meneruskan nilai.

browser.getProcessedConfig

Dengan bantuan fungsi API browser ini kita bisa mendapatkan objek konfigurasi yang diproses, termasuk spesifikasi & kapabilitas, yang sedang dijalankan.

browser.forkNewDriverInstance

Seperti namanya, fungsi ini akan mem-fork instance lain dari browser untuk digunakan dalam tes interaktif. Ini dapat dijalankan dengan aliran kontrol diaktifkan dan dinonaktifkan. Contoh diberikan di bawah untuk kedua kasus -

Example 1

Lari browser.forkNewDriverInstance() dengan aliran kontrol diaktifkan -

var fork = browser.forkNewDriverInstance();
fork.get(‘page1’);

Example 2

Lari browser.forkNewDriverInstance() dengan aliran kontrol dinonaktifkan -

var fork = await browser.forkNewDriverInstance().ready;
await forked.get(‘page1’);

browser.restart

Seperti namanya, ini akan memulai ulang browser dengan menutup instance browser dan membuat yang baru. Itu juga dapat berjalan dengan aliran kontrol diaktifkan dan dinonaktifkan. Contoh diberikan di bawah untuk kedua kasus -

Example 1 - Lari browser.restart() dengan aliran kontrol diaktifkan -

browser.get(‘page1’);
browser.restart();
browser.get(‘page2’);

Example 2 - Lari browser.forkNewDriverInstance() dengan aliran kontrol dinonaktifkan -

await browser.get(‘page1’);
await browser.restart();
await browser.get(‘page2’);

browser.restartSync

Ini mirip dengan fungsi browser.restart (). Satu-satunya perbedaan adalah ia mengembalikan instance browser baru secara langsung daripada mengembalikan janji penyelesaian ke instance browser baru. Itu hanya dapat berjalan ketika aliran kontrol diaktifkan.

Example - Lari browser.restartSync() dengan aliran kontrol diaktifkan -

browser.get(‘page1’);
browser.restartSync();
browser.get(‘page2’);

browser.useAllAngular2AppRoots

Seperti namanya, ini hanya kompatibel dengan Angular2. Ini akan mencari melalui semua aplikasi sudut yang tersedia di halaman sambil menemukan elemen atau menunggu stabilitas.

browser.waitForAngular

Fungsi API browser ini menginstruksikan WebDriver untuk menunggu hingga Angular selesai merender dan tidak memiliki panggilan $ http atau $ batas waktu yang masih ada sebelum melanjutkan.

browser.findElement

Seperti namanya, fungsi API browser ini menunggu Angular menyelesaikan rendering sebelum mencari elemen.

browser.isElementPresent

Seperti namanya, fungsi API browser ini akan menguji apakah elemen tersebut ada di halaman atau tidak.

browser.addMockModule

Ini akan menambahkan modul untuk dimuat sebelum Angular setiap kali metode Protractor.get dipanggil.

Example

browser.addMockModule('modName', function() {
   angular.module('modName', []).value('foo', 'bar');
});

browser.clearMockModules

tidak seperti browser.addMockModule, itu akan menghapus daftar modul tiruan terdaftar.

browser.removeMockModule

Seperti namanya, itu akan menghapus modul tiruan register. Contoh: browser.removeMockModule ('modName');

browser.getRegisteredMockModules

Berlawanan dengan browser.clearMockModule, itu akan mendapatkan daftar modul tiruan terdaftar.

browser.get

Kita bisa menggunakan browser.get () untuk menavigasi browser ke alamat web tertentu dan memuat modul tiruan untuk halaman itu sebelum Angular dimuat.

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

Seperti namanya, ini akan memuat ulang halaman saat ini dan memuat modul tiruan sebelum Angular.

browser.navigate

Seperti namanya, ini digunakan untuk mencampur metode navigasi kembali ke objek navigasi sehingga dipanggil seperti sebelumnya. Contoh: driver.navigate (). Refresh ().

browser.setLocation

Ini digunakan untuk menjelajahi halaman lain menggunakan navigasi dalam halaman.

Example

browser.get('url/ABC');
browser.setLocation('DEF');
expect(browser.getCurrentUrl())
   .toBe('url/DEF');

Ini akan menavigasi dari ABC ke halaman DEF.

browser.debugger

Seperti namanya, ini harus digunakan dengan debug busur derajat. Fungsi ini pada dasarnya menambahkan tugas ke aliran kontrol untuk menghentikan sementara pengujian dan memasukkan fungsi pembantu ke browser sehingga debugging dapat dilakukan di konsol browser.

browser.pause

Ini digunakan untuk men-debug pengujian WebDriver. Kita bisa gunakanbrowser.pause() dalam pengujian kami untuk memasukkan debugger busur derajat dari titik tersebut di aliran kontrol.

Example

element(by.id('foo')).click();
browser.pause();
// Execution will stop before the next click action.
element(by.id('bar')).click();

browser.controlFlowEnabled

Ini digunakan untuk menentukan apakah aliran kontrol diaktifkan atau tidak.