Protractor: خطأ: المهلة - لم يتم استدعاء رد الاتصال غير المتزامن خلال المهلة المحددة بواسطة jasmine.DEFAULT_TIMEOUT_INTERVAL

تم إنشاؤها على ١٩ فبراير ٢٠١٦  ·  26تعليقات  ·  مصدر: angular/protractor

أستخدم المثال من " 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']
}

الآن قم بإجراء الاختبار باستخدام

protractor conf.js

ثم شاشة وحدة التحكم:
image

needs more info

التعليق الأكثر فائدة

sallojusuresh ، الحل أدناه نجح.
jasmineNodeOpts: {
الافتراضي مهلة الفاصل الزمني: 2500000
} ،
سؤال - عندما يمكننا تعيين وقت افتراضي على النحو الوارد أعلاه ، حيث يأتي استخدام وظيفة setTimeout في "beforeEach" وعمليات الاسترجاعات في "it". اي فكرة؟

ال 26 كومينتر

يمكنك العثور على حل في المنشور أدناه: فقط انتقل إلى المنشور بالكامل.

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

هل أنت قادر على بدء السيلينيوم بنجاح؟ ماذا يحدث إذا استخدمت directConnect ؟

إغلاق القضايا التي لا معنى لها.

أواجه نفس المشكلة والوظيفة الأخرى لا تعمل معي.
juliemr أي حل لهذا؟ لقد جربت allScriptsTimeout: 900000 لكن هذا لا يحل المشكلة.

لا يناسبني أيضًا. زيادة defaultTimeoutInterval لا يحلها

juliemr أواجه نفس المشكلة ولا تعمل زيادة ScriptsTimeout بالنسبة لي. هل لديك اي حل لهذا؟ شكرا لك.

أهلا بكم،

أنا أقوم بتشغيل حالة اختبار في منقلة حصلت على خطأ مهلة. هنا التفاصيل. من فضلك النصيحة. شكرا لك

خطأ: مهلة - لم يتم استدعاء رد الاتصال غير المتزامن خلال المهلة المحددة بواسطة jasmine.DEFAULT_TIMEOUT_INTERVAL.

sample_spec.js

وصف ("اختبار تطبيق Mcac" ، الوظيفة () {
browser.get ('http: // localhost: 3000 / Integrated / myWeb.html') ؛
beforeEach (وظيفة (تم) {
window.jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000 ،
setTimeout (الوظيفة () {
console.log ("مهلة داخلية") ؛
فعله()؛
} ، 50000) ؛
}) ؛
//browser.get ('http: // localhost: 3000 / Integrated / myWeb.html') ؛
// browser.get ('http: // localhost: 3000 / Integrated / myWeb.html'). ثم (الوظيفة () {
it ("التحقق من عنوان البريد الإلكتروني" ، الوظيفة ()
{

        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);

// element (by.xpath ("// button [text () = 'تأكيد']")). انقر () ؛
browser.sleep (5000) ؛

}) ؛

config.js

// مثال على ملف التكوين.
الصادرات.config = {
DirectConnect: صحيح ،

// القدرات ليتم تمريرها إلى مثيل webdriver.
قدرات: {
"اسم المتصفح": "كروم"
} ،

// إطار الاستخدام. يوصى باستخدام الياسمين.
الإطار: الياسمين ،

// ترتبط أنماط المواصفات بدليل العمل الحالي عندما
// منقلة تسمى.
// المواصفات: ['example_spec.js']،
// المواصفات: ['mcac_spec.js']،
// المواصفات: ['mcac_spec_mobile.js'] ،
المواصفات: ['mcac_online.js']،
// خيارات لتمريرها إلى الياسمين.
jasmineNodeOpts: {
الافتراضي مهلة الفاصل الزمني: 5000
}

} ؛

أي مساعدة موضع تقدير كبير.

واجهت هذه المشكلة بسبب تكرار $timeout ( $timeout block منقلة ، بينما $interval لا).

للعثور على مهلة $ المتكررة ، يمكنك استخدام مستكشف العناصر منقلة ، على سبيل المثال:

$ 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 () {
        // ......
    }

شكرا لك.

لقد وجدت المشكلة. بسبب تحميل عنوان url يستغرق وقتًا ويبحث عنه
علامة تطبيق ng في صفحة html.

خالص تحياتي،
ناريندرا

ناريندرا ...!

في 15 كانون الأول (ديسمبر) 2016 الساعة 06:12 ، كتبت Amy Boyd [email protected] :

واجهت هذه المشكلة وكان ذلك بسبب تكرار $ timeout ($ timeout
كتل المنقلة ، بينما $ الفاصل لا).

للعثور على مهلة $ المتكررة ، يمكنك استخدام مستكشف العناصر منقلة ،
فمثلا:

منقلة $ config / protractor.js --elementExplorer
بدء وكيل مصحح الأخطاء.
المصحح يستمع على المنفذ 5858

var body = element (by.css ('body'))
body.isPresent ()
ScriptTimeoutError: انقضت مهلة انتظار انتهاء مهام Angular غير المتزامنة بعد 15 ثانية. قد يكون هذا بسبب أن الصفحة الحالية ليست تطبيق Angular. يرجى الاطلاع على الأسئلة الشائعة لمزيد من التفاصيل: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting -for-angular
أثناء انتظار عنصر مع محدد المواقع - محدد المواقع: بواسطة (محدد css ، نص).
كانت المهام التالية معلقة:

  • مهلة $: الوظيفة () {
    // ......
    }

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/angular/protractor/issues/2963#issuecomment-267302567 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AViSFkiN29oWnH6AJ0P_wNY_LNzE2fglks5rISCYgaJpZM4Hd20v
.

أهلا بكم،

أنا أقوم بتشغيل حالة اختبار في منقلة حصلت على خطأ مهلة. هنا التفاصيل. من فضلك النصيحة. شكرا لك

فشل: انقضت المهلة في انتظار انتهاء مهام Angular غير المتزامنة بعد 30 ثانية. قد يكون هذا بسبب أن الصفحة الحالية ليست تطبيق Angular.

sallojusuresh ، الحل أدناه نجح.
jasmineNodeOpts: {
الافتراضي مهلة الفاصل الزمني: 2500000
} ،
سؤال - عندما يمكننا تعيين وقت افتراضي على النحو الوارد أعلاه ، حيث يأتي استخدام وظيفة setTimeout في "beforeEach" وعمليات الاسترجاعات في "it". اي فكرة؟

لقد أصلحت بالطريقة التالية

 var originalTimeout;

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

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

شكرا لك.

ناريندرا ...!

بتاريخ 11 مارس 2018 الساعة 23:53 ، مار زاهر الحق ، إخطارات github.com
كتب:

لقد أصلحت بالطريقة التالية

فار originalTimeout ؛

beforeEach (الوظيفة () {
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL ،
الياسمين.DEFAULT_TIMEOUT_INTERVAL = 10000 ؛
}) ؛

afterEach (وظيفة () {
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout ،
}) ؛ `

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/angular/protractor/issues/2963#issuecomment-372187210 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AViSFg7ITAW3XW5zky_-QXXmAudt11qDks5tdfE1gaJpZM4Hd20v
.

NickTomlin لقد جعلت يومي :) لقد استخدمت Directconnect وعملت. سيكون من الرائع أن تلقي بعض الضوء على ما يفعله Directconnect بشكل فعال

في حالتي ، كان سبب هذا الخطأ هو الاستخدام غير السليم لـ "fixture.detectChanges ()" يبدو أن هذه الطريقة عبارة عن مستمع حدث (غير متزامن) والذي لن يستجيب إلا لمعاودة الاتصال عند اكتشاف التغييرات. إذا لم يتم اكتشاف أي تغييرات ، فلن يقوم باستدعاء رد الاتصال ، مما يؤدي إلى خطأ انتهاء المهلة. أتمنى أن يساعدك هذا :)

juliemr Timeout - لم يتم استدعاء رد الاتصال غير المتزامن خلال المهلة المحددة بواسطة jasmine.DEFAULT_TIMEOUT_INTERVAL. يأتي هذا الخطأ في الاختبار مرة أخرى n مرة أخرى استخدمته قبل كل ، بعد كل متصفح ، نائم ، زاد مهلة الياسمين حتى 100000. لكن الكود الخاص بي لا يعمل ، لذا يرجى اقتراح ما يمكنني فعله.

حصلت على هذه المشكلة ولا يمكنني حلها مع زيادة مهلة الياسمين إلى 300000. لذا يرجى اقتراح ما يجب علي فعله من أجل ذلك.

هل يمكنك تقديم مثال بسيط؟

الحل لهذا هو ، إذا كنت تحاول كتابة اختبارات لتطبيق غير الزاوي ، فقم بـ goto runner.js في node_modules / منقلة / build
قم بتحرير السطر رقم 210 للانتظار لأنجولار إينابليد: خطأ // صحيح

juliemr اقتراح لجعل هذا الإعداد قابل للتكوين.

يمكنك القيام بذلك في قسم onPrepare() :

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

لدي نفس المشكلة ، لكن الحلول المقدمة هنا لم تنجح معي. إذا كان لديك متسع من الوقت ، فيرجى إلقاء نظرة على سؤالي على موقع Stack Overflow. يمكن بسهولة تكرار المشكلة ولدي ريبو. أعتقد أنه من الممكن وجود خطأ.
https://stackoverflow.com/questions/53786401/error-debugging-protractor-with-node-8-async-await-and-angular-6

من المتوقع أن يساوي الخطأ صحيحًا لأن: سجلات الأخطاء موجودة في وحدة التحكم: الإدخال {
المستوى: المستوى {name_: 'SEVERE' ، القيمة_: 1000} ،
رسالة:
خطأ "ERROR": يتوقع formGroup مثيل FormGroup. الرجاء تمرير واحد. \ n \ n مثال: \ n \ n \ n

\ n \ n في فصلك الدراسي: \ n \ n this.myGroup = new FormGroup ({\ n FirstName: new FormControl () \ n}) ؛ \ n في Function.e.missingFormException

تواجه مشكلة أثناء النقر فوق الزر المنبثق ، أي حل؟

لدي مشكلة مماثلة مع المنشور ولقد قمت بحل مشكلتي بإضافة HttpClientModule على الواردات:

beforeEach (() => {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

}) ؛

لدي مشكلة مماثلة مع المنشور ولقد قمت بحل مشكلتي بإضافة HttpClientModule على الواردات:

beforeEach (() => {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

}) ؛

أنا شخصيا واجهت مشاكل في استيراد HttpClientModule داخل اختبار. يحاول تشغيل واجهات برمجة التطبيقات الخاصة بك في اختبارات الوحدة الخاصة بك ونتيجة لذلك ، فإنها تفشل. سيكون الأسلوب الصحيح هو استخدام HttpClientTestingModule

sallojusuresh ، الحل أدناه نجح.
jasmineNodeOpts: {
الافتراضي مهلة الفاصل الزمني: 2500000
} ،
سؤال - عندما يمكننا تعيين وقت افتراضي على النحو الوارد أعلاه ، حيث يأتي استخدام وظيفة setTimeout في "beforeEach" وعمليات الاسترجاعات في "it". اي فكرة؟

هذا هو الحل الأفضل فقط الصق هذا الجزء من التعليمات البرمجية في ملف confing الخاص بك ، يجب أن يحل مشكلتك.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات