Транспортир без ожидания переходит к следующему испытанию

Я использую транспортир и когда я запускаю свои тесты наbrowserstack Я получаю следующую ошибку

StaleElementReferenceError: stale element reference: element is not attached to the page document

или в зависимости от того, что я делаю вbeforeAll

Error: Index out of bound. Trying to access element at index: 0, but there are only 0 elements that match locator By.cssSelector ...

Вот фрагмент кода, вызывающий ошибку:

describe('...', () => {
   it('...', () => {
       expect(element.all(by.css(...)).count()).toBe(9);
       expect(element.all(by.css('.items').get(0).isDisplayed()).toBeTruthy();
   });
}

describe('', () => {
    beforeAll((/* done */) => {
         element(by.css('.go-home').click(); // .then(done); 
         //browser.driver.get('/');//.then(done);
    });
    ...
});

По какой-то причинеbeforeAll продолжает и изменяет URL, в то время как предыдущийit все еще работает (я думаю, на основании ошибки).

Теперь мне удалось взломать это так, что это работает. Я добавилdone кit следующее

describe('...', () => {
   it('...', (done) => {
       expect(element.all(by.css(...).count()).toBe(9);

       element.all(by.css(...)).get(0).isDisplayed().then((state) => {
          expect(state).toBeTruthy();
          done();
    });
   });
}

describe('', () => {
    beforeAll(() => {
         element(by.css('.go-home').click(); // works 
         //browser.driver.get('/');          // still fails
    });
    ...
});

Теперь это работает. Однако, если я используюbrowser.driver.get('/') это снова не удается.

Обычно мне не нужно добавлятьdone к моемуitТак что мой вопрос: что здесь не так? Любая помощь будет оценена

ОБНОВЛЕНИЕ: protractor.config.js:

exports.config = {
    chromeDriver: '../node_modules/protra...medriver_2.25',
    seleniumServerJar: '../node_...-server-standalone-2.53.1.jar',
    exclude: [],

    specs: [
        '../test/e2e/**/*.js'
    ],

    multiCapabilities: [
        {
            build: 'test',
            project: 'ABC',
            browserName: 'firefox',
            //browserName: 'chrome',
            os: 'Windows',
            os_version: '10',
            directConnect: true
        }],
    debug: true,
    maxSessions: 1,
    framework: 'jasmine2',

    onPrepare: function () {
        browser.driver.manage().window().setSize(1024, 768);

        // Register helpers
        require('../test/framework/jasmine2');

        var disableNgAnimate = function () {
            angular
                .module('disableNgAnimate', [])
                .run(['$animate', function ($animate) {
                    $animate.enabled(false);
                }]);
            };

        var disableCssAnimate = function () {
            angular
                .module('disableCssAnimate', [])
                .run(function () {
                    var style = document.createElement('style');
                    style.type = 'text/css';
                    style.innerHTML = '* {' +
                        '-webkit-transition: none !important;' +
                        '-moz-transition: none !important' +
                        '-o-transition: none !important' +
                        '-ms-transition: none !important' +
             ,           'transition: none !important' +
                        '}';
                    document.getElementsByTagName('head')[0].appendChild(style);
            });
        };

        browser.addMockModule('disableNgAnimate', disableNgAnimate);
        browser.addMockModule('disableCssAnimate', disableCssAnimate);
    }
};

Ответы на вопрос(1)

Ваш ответ на вопрос