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.