Busur Derajat - Tidak dapat membaca properti '$$testability' yang tidak ditentukan

Saya mendapatkan kesalahan yang berbunyi:

"Error while waiting for Protractor to synce with the page: "Cannot read property '$$testability' of undefined"

Di bawah ini adalah tes saya.

describe('On the MyMoments page', function(){  

    beforeEach(function() {
        var editLocationText = 'Location';

        browser.driver.get('http://192.168.0.6:8100/#/page1/myMoments');
    });

    it('The edit button should work', function() {
        browser.driver.get('http://192.168.0.6:8100/#/page1/myMoments').then(function() {
            // browser.waitForAngular();
            browser.getCurrentUrl().then(function(url) {

            });
        });


    });
});

Ini adalah file konfigurasi saya:

exports.config = {  
    capabilities: {
        'browserName': 'chrome',
        'chromeOptions': {                
            args: ['--disable-web-security']
        } 
    },
    baseUrl: 'http://192.168.0.6:8100',
    specs: [
    '*.test.js'
    ],
    jasmineNodeOpts: {
        isVerbose: true,
    }
};

Saya rasa ini tidak ada hubungannya dengan pengujian saya karena pengujian saya sangat sederhana. Adakah yang pernah mengalami masalah ini sebelumnya? Saya agak terjebak.

Terima kasih.

Sunting:

Menurunkan versi Busur Derajat saya hingga 4.0.14 untuk memperbaiki kesalahan ini. Sekarang saya mendapatkan:

"Failed: Error while waiting for Protractor to sync with the page: "[ng:test] no injector found for element argument to getTestability/http://errors.angularjs.org/1.5.3/ng/test"

Jika ada yang tahu apa ini atau bagaimana mengatasinya, beri tahu saya!

Terima kasih.


person MatTaNg    schedule 10.05.2017    source sumber


Jawaban (4)


Ini adalah masalah umum di Busur Derajat, lihat di sini. Seperti disebutkan dalam masalah ini karena browser.angularAppRoot() diharapkan mengembalikan nilai root aplikasi saat ini jika nilai tidak diteruskan ke sana, tetapi saat ini mengembalikan nilai yang tidak ditentukan. Rilis baru akan hadir yang seharusnya memperbaiki masalah ini.

Semoga ini bisa membantu

person wswebcreation    schedule 10.05.2017
comment
Apakah ada perbaikan sementara? Apakah tes Busur Derajat saya rusak sampai keluar dengan patch ini? - person MatTaNg; 10.05.2017
comment
Versi Busur Derajat manakah yang Anda gunakan? Mungkin Anda dapat menurunkan versi (patch atau versi minor) - person wswebcreation; 10.05.2017
comment
Saya melanjutkan ke versi 4.0.14 dan saya mulai mendapatkan Failed: Error while waiting for Protractor to sync with the page: [ng:test] no injector found for element argument to getTestability/errors.angularjs.org/1.5.3/ng/test - person MatTaNg; 11.05.2017
comment
Ironisnya saya baru saja mengupgrade Busur Derajat dan Selenium untuk memperbaiki bug pada Firefox terbaru. Menjadi mustahil untuk menemukan kombinasi yang tepat agar hal ini tetap berjalan.. - person Eric Soyke; 11.05.2017
comment
Bug Busur Derajat telah diperbaiki di 5.1.2. Jika Anda masih mendapatkan kesalahan ini, hal ini mungkin disebabkan oleh masalah mendasar lain yang menyebabkan halaman Anda kosong saat Busur Derajat melihatnya. Lihat jawabannya di bawah. - person emery; 11.10.2017

Meskipun terkadang hal ini disebabkan oleh dokumen tanpa tag html di root, "Tidak dapat membaca properti '$$testability' yang tidak terdefinisi" lebih cenderung muncul sebagai gejala kesalahan lain yang mencegah pemuatan laman, atau interaksi apa pun dengan laman itu tidak dimuat karena alasan apa pun.

Coba gunakan browser.sleep di atas baris yang memunculkan kesalahan, untuk memberi waktu pada halaman untuk dimuat.

Klausa browser.ExpectedConditions yang dimaksudkan untuk menunggu kondisi tertentu dapat menimbulkan kesalahan ini jika halaman belum siap untuk busur derajat.

Terkadang, tidur dengan kode keras tidak dapat dihindari.

Untuk mendiagnosis dan memperbaikinya,

  • Tempatkan browser.enterRepl(); ke dalam kode tepat sebelum baris yang tampaknya menimbulkan kesalahan $$testability.
  • Jika kesalahan $$testability masih muncul, pindahkan browser.enterRepl(); naik beberapa baris
  • Setiap kali enterRepl() terpicu tanpa kesalahan $$testability, lalu pindahkan browser.enterRepl(); turun satu baris
  • Terakhir, ketika enterRepl dipindahkan ke baris tepat di bawah baris yang menyebabkan kesalahan, Anda sekarang mungkin melihat pesan kesalahan berbeda yang lebih bermakna.
  • Tempatkan browser.sleep() atau kode lain untuk memperbaiki masalah spesifik Anda tepat sebelum baris yang menyebabkan kesalahan tersebut.
person emery    schedule 10.10.2017

Mengubah browser dari chrome ke firefox berhasil untuk saya.

// conf.js
exports.config = {
framework: 'jasmine',
seleniumAddress: 'http://localhost:4444/wd/hub',
  capabilities: {
  'browserName': 'firefox'
},
specs: ['login-spec.js']
}
person SriBalaji P    schedule 04.10.2017

Saya memiliki masalah yang sama dengan aplikasi hybrid Angular. Dalam kasus saya, masalahnya telah diperbaiki setelah dihapus,

rootElement: 'myRootElement'

dari konfigurasi.

person Koga    schedule 13.11.2018