Protractor: Ошибка: тайм-аут — асинхронный обратный вызов не был вызван в течение тайм-аута, указанного jasmine.DEFAULT_TIMEOUT_INTERVAL

Созданный на 19 февр. 2016  ·  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 , приведенное ниже решение сработало.
жасминнодеоптс: {
по умолчаниюТимеаутИнтервал: 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

описать('Тестирование приложения Macac', function() {
browser.get('http://localhost:3000/integrated/myWeb.html');
перед каждым (функция (выполнено) {
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').then(function() {
it('Проверка адреса электронной почты', 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);

// element(by.xpath("//button[text()='Confirm']")).click();
браузер.спать(5000);

});

config.js

// Пример файла конфигурации.
экспорт.config = {
DirectConnect: правда,

// Возможности, которые необходимо передать экземпляру веб-драйвера.
возможности: {
'название_браузера': 'хром'
},

// Фреймворк для использования. Жасмин рекомендуется.
каркас: «жасмин»,

// Шаблоны спецификаций относятся к текущему рабочему каталогу, когда
// транспортир вызывается.
// спецификации: ['example_spec.js'],
// спецификации: ['mcac_spec.js'],
// спецификации: ['mcac_spec_mobile.js'],
спецификации: ['mcac_online.js'],
// Опции для передачи Jasmine.
жасминнодеоптс: {
по умолчаниюТимеаутИнтервал: 5000
}

};

любая помощь высоко ценится.

У меня была эта проблема, и это было из-за повторяющегося $timeout ( $timeout блокирует транспортир, а $interval — нет).

Чтобы найти повторяющийся $timeout, вы можете использовать проводник элементов Protractor, например:

$ 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-app на странице html.

наилучшие пожелания,
Нарендра

Нарендра...!

15 декабря 2016 г. в 06:12 Эми Бойд ( [email protected] ) написала:

У меня была эта проблема, и это было из-за повторяющегося тайм-аута $ ($ timeout
блокирует транспортир, а $interval — нет).

Чтобы найти повторяющийся $timeout, вы можете использовать проводник элементов Protractor,
Например:

$ конфигурация транспортира/protractor.js --elementExplorer
Запуск агента отладчика.
Отладчик прослушивает порт 5858

var body = элемент (by.css («тело»))
тело.isPresent()
ScriptTimeoutError: истекло время ожидания завершения асинхронных задач Angular через 15 секунд. Это может быть связано с тем, что текущая страница не является приложением Angular. Подробнее см. в FAQ: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting -for-angular.
В ожидании элемента с локатором - Локатор: By(селектор css, тело).
Предстояли следующие задачи:

  • $ тайм-аут: функция () {
    // ......
    }


Вы получаете это, потому что вы прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/angular/protractor/issues/2963#issuecomment-267302567 ,
или заглушить тему
https://github.com/notifications/unsubscribe-auth/AViSFkiN29oWnH6AJ0P_wNY_LNzE2fglks5rISCYgaJpZM4Hd20v
.

Всем привет,

Я запускаю тестовый пример в транспортире, получая ошибку тайм-аута. Вот подробности. Пожалуйста посоветуй. Спасибо

Сбой: истекло время ожидания завершения асинхронных задач Angular через 30 секунд. Это может быть связано с тем, что текущая страница не является приложением Angular.

@sallojusuresh , приведенное ниже решение сработало.
жасминнодеоптс: {
по умолчаниюТимеаутИнтервал: 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, г-н Захирул Хак, [email protected]
написал:

Я исправил следующим образом

` var originalTimeout;

перед каждым (функция () {
originalTimeout = жасмин.DEFAULT_TIMEOUT_INTERVAL;
жасмин.DEFAULT_TIMEOUT_INTERVAL = 10000;
});

после каждого (функция () {
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.

В моем случае эта ошибка была вызвана неправильным использованием «fixture.detectChanges ()». Кажется, этот метод является прослушивателем событий (асинхронным), который будет отвечать на обратный вызов только при обнаружении изменений. Если изменений не обнаружено, обратный вызов не будет вызываться, что приведет к ошибке тайм-аута. Надеюсь это поможет :)

@juliemr Timeout — асинхронный обратный вызов не был вызван в течение времени ожидания, указанного jasmine.DEFAULT_TIMEOUT_INTERVAL. эта ошибка появляется в моем тесте снова и снова, я использовал перед каждым, после каждого, browser.sleep, увеличил итервал времени ожидания jasmine до 100000. но мой код не запускается, поэтому, пожалуйста, предложите мне, что я могу сделать.

У меня возникла эта проблема, и я не могу решить ее, увеличив время ожидания жасмина до 300000. Поэтому, пожалуйста, предложите мне, что мне делать для этого.

Не могли бы вы привести простой пример?

Решение этой проблемы: если вы пытаетесь написать тесты для неуглового приложения, перейдите к runner.js в node_modules/protractor/built
Измените строку # 210 на waitForAngularEnabled: false // true

@juliemr предложение сделать этот параметр настраиваемым.

вы можете сделать это в разделе onPrepare() :

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

У меня возникла та же проблема, но решения, представленные здесь, мне не помогли. Если у вас есть время, посмотрите мой вопрос о переполнении стека. Проблема может быть легко воспроизведена, и у меня есть репо. Думаю возможно баг.
https://stackoverflow.com/questions/53786401/error-debugging-protractor-with-node-8-async-await-and-angular-6

Ожидаемое значение false равно true, потому что: Журналы ошибок присутствуют в console:Entry {
уровень: Уровень {имя_: 'СЕРЬЕЗНЫЙ', значение_: 1000},
сообщение:
Ошибка "ОШИБКА": formGroup ожидает экземпляр FormGroup. Пожалуйста, передайте один.\n\n Пример:\n\n \n

\n \n
\n\n В вашем классе:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });\n at Function.e.missingFormException

возникает проблема при нажатии на всплывающую кнопку, какое-либо решение?

У меня аналогичная проблема с сообщением, и я решил свою проблему, добавив HttpClientModule при импорте:

перед каждым (() => {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

});

У меня аналогичная проблема с сообщением, и я решил свою проблему, добавив HttpClientModule при импорте:

перед каждым (() => {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

});

У меня лично были проблемы с импортом HttpClientModule внутри тестового стенда. Он пытается запустить ваши API в ваших модульных тестах, и в результате они терпят неудачу. Правильным подходом было бы использование HttpClientTestingModule.

@sallojusuresh , приведенное ниже решение сработало.
жасминнодеоптс: {
по умолчаниюТимеаутИнтервал: 2500000
},
Вопрос. Когда мы можем установить время по умолчанию, как указано выше, где использовать функцию setTimeout в «beforeEach» и обратные вызовы в «it». Любая идея?

Это лучшее решение, просто вставьте этот фрагмент кода в ваш файл конфигурации, он должен решить вашу проблему.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги