Protractor: Kesalahan: Timeout - Panggilan balik async tidak dipanggil dalam batas waktu yang ditentukan oleh jasmine.DEFAULT_TIMEOUT_INTERVAL

Dibuat pada 19 Feb 2016  ·  26Komentar  ·  Sumber: angular/protractor

saya menggunakan contoh dari " http://www.protractortest.org/#/tutorial "

// spec.js
describe('Protractor Demo App', function() {
  it('should have a title', function() {
    browser.get('http://juliemr.github.io/protractor-demo/');

    expect(browser.getTitle()).toEqual('Super Calculator');
  });
});

// conf.js
exports.config = {
  framework: 'jasmine',
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['spec.js']
}

Sekarang jalankan tes dengan

protractor conf.js

Kemudian tampilan konsol:
image

needs more info

Komentar yang paling membantu

@sallojusuresh , solusi di bawah ini berhasil.
jasmineNodeOpts: {
defaultTimeoutInterval: 2500000
},
Pertanyaan - Ketika kita dapat mengatur waktu default seperti di atas, dari mana penggunaan fungsi setTimeout di 'beforeEach' dan melakukan panggilan balik di 'it'. Ada ide?

Semua 26 komentar

Anda dapat menemukan solusi di posting di bawah ini: cukup buka seluruh posting.

https://github.com/angular/protractor/issues/2941#issuecomment -186104304

Apakah Anda berhasil memulai selenium? Apa yang terjadi jika Anda menggunakan directConnect ?

Menutup masalah basi.

saya mengalami masalah yang sama dan posting lainnya tidak berfungsi untuk saya.
@juliemr ada solusi untuk ini? saya mencoba allScriptsTimeout: 900000 tetapi ini tidak menyelesaikan masalah.

Tidak bekerja untuk saya juga. meningkatkan defaultTimeoutInterval tidak menyelesaikannya

@juliemr Saya mengalami masalah yang sama dan meningkatkan ScriptsTimeout tidak berhasil untuk saya. Apakah Anda punya solusi untuk ini? Terima kasih.

Halo semua,

Saya menjalankan test case di busur derajat mendapatkan kesalahan waktu habis. Berikut rinciannya. Tolong saran. Terima kasih

Kesalahan: Timeout - Async callback tidak dipanggil dalam batas waktu yang ditentukan oleh jasmine.DEFAULT_TIMEOUT_INTERVAL.

sample_spec.js

deskripsikan('Pengujian Aplikasi Mcac', function() {
browser.get('http://localhost:3000/integrated/myWeb.html');
beforeEach(fungsi (selesai) {
window.jasmine.DEFAULT_TIMEOUT_INTERVAL = 10.000;
setTimeout(fungsi () {
console.log('dalam batas waktu');
selesai();
}, 50000);
});
//browser.get(' http://localhost:3000/integrated/myWeb.html');
// browser.get('http://localhost:3000/integrated/myWeb.html').lalu(fungsi() {
it('Validasi Alamat Email', function()
{

        element(by.model('ctrl.formData.emailAddress')).sendKeys('').clear();
        element(by.model('ctrl.formData.emailAddress')).sendKeys('[email protected]');
        element(by.model('ctrl.formData.emailAddress')).getAttribute('value').then(function (value) {
            expect(value).toEqual('[email protected]');
        });


}, 10000);

// elemen(by.xpath("//button[text()='Confirm']")).click();
browser.sleep(5000);

});

config.js

// Contoh file konfigurasi.
ekspor.config = {
DirectConnect: benar,

// Kemampuan untuk diteruskan ke instance webdriver.
kemampuan: {
'nama browser': 'chrome'
},

// Kerangka yang akan digunakan. Melati dianjurkan.
kerangka: 'melati',

// Pola spesifikasi relatif terhadap direktori kerja saat ini ketika
// busur derajat dipanggil.
// spesifikasi: ['example_spec.js'],
// spesifikasi: ['mcac_spec.js'],
//spesifikasi: ['mcac_spec_mobile.js'],
spesifikasi: ['mcac_online.js'],
// Opsi yang akan diteruskan ke Jasmine.
jasmineNodeOpts: {
defaultTimeoutInterval: 5000
}

};

bantuan apa pun sangat dihargai.

Saya mengalami masalah ini dan itu karena $timeout yang berulang ( $timeout memblokir Busur Derajat, sedangkan $interval tidak).

Untuk menemukan $timeout berulang, Anda dapat menggunakan penjelajah elemen busur derajat, misalnya:

$ protractor config/protractor.js --elementExplorer
Starting debugger agent.
Debugger listening on port 5858
> var body = element(by.css('body'))
> body.isPresent()
ScriptTimeoutError: Timed out waiting for asynchronous Angular tasks to finish after 15 seconds. This may be because the current page is not an Angular application. Please see the FAQ for more details: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular
While waiting for element with locator - Locator: By(css selector, body). 
The following tasks were pending:
 - $timeout: function () {
        // ......
    }

Terima kasih.

Saya menemukan masalahnya. itu karena pemuatan url membutuhkan waktu dan pencarian
tag ng-app di halaman html.

salam Hormat,
Narendra

Narendra...!

Pada 15 Desember 2016 pukul 06:12, Amy Boyd [email protected] menulis:

Saya mengalami masalah ini dan itu karena $timeout ($timeout . yang berulang)
memblokir Busur Derajat, sedangkan $interval tidak).

Untuk menemukan $timeout berulang, Anda dapat menggunakan penjelajah elemen busur derajat,
Misalnya:

$ busur derajat config/busur derajat.js --elementExplorer
Memulai agen debugger.
Debugger mendengarkan pada port 5858

var tubuh = elemen(by.css('tubuh'))
body.isPresent()
ScriptTimeoutError: Waktu habis menunggu tugas Angular asinkron selesai setelah 15 detik. Ini mungkin karena halaman saat ini bukan aplikasi Angular. Silakan lihat FAQ untuk detail lebih lanjut: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting -for-angular
Sambil menunggu elemen dengan locator - Locator: By(css selector, body).
Tugas-tugas berikut tertunda:

  • $waktu habis: fungsi() {
    // ......
    }


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/angular/protractor/issues/2963#issuecomment-267302567 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AViSFkiN29oWnH6AJ0P_wNY_LNzE2fglks5rISCYgaJpZM4Hd20v
.

Halo semua,

Saya menjalankan test case di busur derajat mendapatkan kesalahan waktu habis. Berikut rinciannya. Tolong saran. Terima kasih

Gagal: Waktu habis menunggu tugas Angular asinkron selesai setelah 30 detik. Ini mungkin karena halaman saat ini bukan aplikasi Angular.

@sallojusuresh , solusi di bawah ini berhasil.
jasmineNodeOpts: {
defaultTimeoutInterval: 2500000
},
Pertanyaan - Ketika kita dapat mengatur waktu default seperti di atas, dari mana penggunaan fungsi setTimeout di 'beforeEach' dan melakukan panggilan balik di 'it'. Ada ide?

Saya telah memperbaikinya dengan cara berikut

 var originalTimeout;

    beforeEach(function() {
        originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
        jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
    });

    afterEach(function() {
      jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
    });

Terima kasih.

Narendra...!

Pada 11 Maret 2018 pukul 23:53, Md. Zahirul Haque [email protected]
menulis:

Saya telah memperbaikinya dengan cara berikut

` var originalTimeout;

sebelumSetiap(fungsi() {
originalTimeout = melati.DEFAULT_TIMEOUT_INTERVAL;
melati.DEFAULT_TIMEOUT_INTERVAL = 10.000;
});

setelahSetiap(fungsi() {
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
});`


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/angular/protractor/issues/2963#issuecomment-372187210 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AViSFg7ITAW3XW5zky_-QXXmAudt11qDks5tdfE1gaJpZM4Hd20v
.

@NickTomlin Anda baru saja membuat hari saya menyenangkan :) Saya telah menggunakan directconnect & bekerja. Akan sangat bagus jika Anda memberi sedikit gambaran tentang apa yang sebenarnya dilakukan directconnect

Dalam kasus saya, kesalahan ini disebabkan oleh penggunaan "fixture.detectChanges()" yang tidak tepat. Tampaknya metode ini adalah pendengar acara (async) yang hanya akan merespons panggilan balik ketika perubahan terdeteksi. Jika tidak ada perubahan yang terdeteksi, panggilan balik tidak akan dipanggil, yang mengakibatkan kesalahan batas waktu. Semoga ini membantu :)

@juliemr Timeout - Panggilan balik asinkron tidak dipanggil dalam batas waktu yang ditentukan oleh jasmine.DEFAULT_TIMEOUT_INTERVAL. kesalahan ini datang dalam pengujian saya lagi dan lagi saya gunakan sebelum masing-masing, setelah masing-masing, browser.sleep, meningkatkan iterval timeout melati hingga 100000. tetapi kode saya tidak berjalan jadi tolong sarankan saya apa yang bisa saya lakukan.

Saya mendapatkan masalah ini dan tidak dapat menyelesaikannya sambil meningkatkan batas waktu melati hingga 300000. Jadi tolong sarankan saya apa yang harus saya lakukan untuk itu.

Bisakah Anda memberikan contoh sederhana?

Solusi untuk ini adalah, jika Anda mencoba menulis tes untuk aplikasi non-sudut, buka runner.js di node_modules/protractor/built
Edit baris # 210 ke waitForAngularEnabled: false //true

@juliemr saran untuk membuat pengaturan ini dapat dikonfigurasi.

anda bisa melakukannya di bagian onPrepare() :

onPrepare: async () => {
    await browser.waitForAngularEnabled(false);
    ....
}

Saya mendapat masalah yang sama, tetapi solusi yang diberikan di sini tidak berhasil untuk saya. Jika Anda punya waktu, silakan lihat pertanyaan saya di Stack Overflow. Masalahnya dapat dengan mudah direproduksi dan saya punya repo. Saya kira itu mungkin bug.
https://stackoverflow.com/questions/53786401/error-debugging-protractor-with-node-8-async-await-and-angular-6

Diharapkan salah sama dengan benar Karena: Log kesalahan ada di konsol: Entri {
level: Level { nama_: 'PARAH', nilai_: 1000 },
pesan:
Kesalahan "ERROR": formGroup mengharapkan instance FormGroup. Tolong berikan satu.\n\n Contoh:\n\n \n

\n \n
\n\n Di kelas Anda:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });\n di Function.e.missingFormException

mendapatkan masalah saat mengklik tombol pop up, ada solusi?

Saya memiliki masalah yang sama dengan posting dan saya telah memecahkan masalah saya menambahkan HttpClientModule pada impor:

sebelumSetiap(() => {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

});

Saya memiliki masalah yang sama dengan posting dan saya telah memecahkan masalah saya menambahkan HttpClientModule pada impor:

sebelumSetiap(() => {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

});

Saya pribadi mengalami masalah saat mengimpor HttpClientModule di dalam testbed. Ini mencoba menjalankan API Anda di pengujian unit Anda dan sebagai hasilnya, mereka gagal. Pendekatan yang tepat adalah dengan menggunakan HttpClientTestingModule

@sallojusuresh , solusi di bawah ini berhasil.
jasmineNodeOpts: {
defaultTimeoutInterval: 2500000
},
Pertanyaan - Ketika kita dapat mengatur waktu default seperti di atas, dari mana penggunaan fungsi setTimeout di 'beforeEach' dan melakukan panggilan balik di 'it'. Ada ide?

Ini adalah solusi terbaik, cukup tempelkan potongan kode ini di file konfigurasi Anda, itu akan menyelesaikan masalah Anda.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat