Вот мой файл настроек.
exports.config = {
rootElement: '[ng-app="myapp"]',
framework: 'jasmine',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['./web/assets/e2e/**/*protractor.js'],
SELENIUM_PROMISE_MANAGER: false,
baseUrl: 'https://localhost',
capabilities: {
browserName: 'firefox',
marionette: true,
acceptInsecureCerts: true,
'moz:firefoxOptions': {
args: ['--headless'],
},
}
}
Так что с этой конфигурацией мои тесты случайно проваливаются со следующей ошибкой
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
Но!Когда я закомментирую следующие строки
'moz:firefoxOptions': {
args: ['--headless'],
},
, которые обозначают режим без головы, и наблюдаю, как firefox выполняет мои тесты - тесты никогда не заканчиваются и занимают в 3 раза меньше времени.
Ниже приведен пример тестаэто несколько раз не удавалось с ошибкой, о которой я упоминал выше.
it('- should test add button open a form', async () => {
await ClientListPageDriver.openAddClientForm();
await FormDriver.toBeShown('Add New Client');
await FormDriver.pressClose();
});
А вот методы из драйверов, на которые я ссылаюсь
this.openAddClientForm = async () => {
const button = await $('button[ng-click="$ctrl.addClient()"]');
await button.click();
};
this.toBeShown = async (title) => {
const modalElement = await $('#form').element(by.cssContainingText('.form-header h2', title))
const awaitSeconds = 6;
return await browser.wait(
protractor.ExpectedConditions.presenceOf(modalElement),
awaitSeconds * 1000,
`Form should be shown within ${awaitSeconds} sec`,
);
};
this.pressClose = async () => {
const button = await $('button[ng-click="$ctrl.closeForm()"]');
await button.click();
};
Мой вопрос - что я делаю неправильно,что мне, вероятно, не хватает и как это исправить?Спасибо!