Время ожидания транспортира / жасмина на хроме без головы - ошибка: время ожидания - обратный вызов Asyn c - PullRequest
0 голосов
/ 27 февраля 2020

Привет всем, поэтому я пытаюсь запустить хром без головы с транспортиром и жасмином. У меня все настроено и работает как для firefox, так и для chrome с головой. Когда я запускаю firefox без головы, это работает ... когда я пытаюсь запустить хром без головы, это заканчивается временем ожидания. Нужна помощь в решении этой проблемы.

Я получаю ошибку:

Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.

Теперь я прочитал миллионную статью в Интернете и попытался увеличить время ожидания и добавить в функция также ...

Вот мой текущий код:

Conf. js - здесь есть куча добавленных аргументов и настроек, которые я нашел в Интернете. Я попробовал почти все варианты, но безуспешно.

  exports.config = {
    framework: 'jasmine2',
    seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: ['spec.js'],
    allScriptsTimeout: 5000000,
    capabilities: {
        'directConnect': true,
        'browserName': 'chrome',
        "goog:chromeOptions": {
            args: ["--headless", "--remote-debugging-port=9222", "--verbose", "--disable-gpu", "--disable-web-security", "--window-size=800x600"],
            'binary': "/usr/bin/chromium-browser"
        }
    }
  };

Spe c. js - прямо с их сайта с console.logs. Все файлы console.logs распечатываются в следующем порядке 3,1,2. Это то, что я не уверен, правильно? Должно ли описание ждать, пока оно завершится sh? Такое ощущение, что мой он никогда не вернется ...

    describe('angularjs homepage todo list', function() {
  it('should add a todo', function(done) {
    console.log("WOOO1");
    browser.get('https://angularjs.org');

    element(by.model('todoList.todoText')).sendKeys('write first protractor test');
    element(by.css('[value="add"]')).click();

    var todoList = element.all(by.repeater('todo in todoList.todos'));
    expect(todoList.count()).toEqual(3);
    expect(todoList.get(2).getText()).toEqual('write first protractor test');

    // You wrote your first test, cross it off the list
    todoList.get(2).element(by.css('input')).click();
    var completedAmount = element.all(by.css('.done-true'));
    expect(completedAmount.count()).toEqual(2);
    console.log("WOO2");

  }, 15000);
  console.log("WOO3");
});

После этого я обнаружил некоторые другие открытия ... когда я go к локальному хосту: 9222 я вижу

   Inspectable WebContents
data:text/html,<html></html>

Данные: текст / html, - это ссылка, и при щелчке по ней я перехожу к удаленному отладчику chrome, который загружает ... данные: текст / html ,. Вот где я думаю, что проблема. Почему на самом деле это никогда не загружает сайт angular?

Может быть, я не в базе, но кто-нибудь знает, как это понять?

РЕДАКТИРОВАТЬ: Дополнительная полезная информация. Я использую хром 79.0.3945.130 хромедрайвер 79.0.3945.36

Жасмин v3.5.0 Жасмин ядро ​​v3.5.0

Транспортир 5.4.3

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

Конфиг, который закончил работать на меня

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

    capabilities: {
    'directConnect': true,
    'browserName': 'chrome',
    "goog:chromeOptions": {
    args: ["--headless", "--remote-debugging-port=9222", "--verbose", "--disable-gpu", "--disable-web-security", "--window-size=800x600"],
    'binary': "path to chrome"
    }
    }
    };
0 голосов
/ 28 февраля 2020

добавьте allScriptTimeOut в вашу конфигурацию следующим образом:

exports.config = {
    capabilities: {
        'browserName': 'chrome'
    },
    framework: 'jasmine',
    specs: ['example_spec.js'],
    allScriptsTimeout: 9000
};

надеюсь, эта ссылка поможет вам https://www.protractortest.org/# / timeouts .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...