Тест Protractor e2e для загрузки и сравнения файла с browser.driver.wait истекает.

Я следовал предложениям в этой теме: Тестовый пример Protractor e2e для загрузки файла PDF и файл загружается правильно, но время теста истекает до достижения сравнения/ожидания.

var filename = 'somefilename';
var content = 'some content\r\nsome more content';
download.click();
browser.driver.wait(function() {
  return fs.existsSync(filename);
}, 5000).then(function() {
  expect(fs.readFileSync(filename, {encoding: 'utf8'})).toEqual(content);
});

Он создает и загружает файл, а затем сидит там в течение 5 секунд, прежде чем продолжить. Сообщение, которое я получаю:

   Message:
     Error: Wait timed out after 5000ms
   Stacktrace:
     Error: Wait timed out after 5000ms
    at Array.forEach (native)
From: Task: <anonymous wait>
    at /path/to/test/e2e/scenarios.js:337:28
    at Array.forEach (native)

Где строка 337 — это строка browser.driver.wait.

Я попытался сделать это без browser.driver.wait, поскольку загрузка на самом деле очень быстрая, поскольку файл состоит всего из двух коротких строк, выполнив следующие действия:

expect(fs.existsSync(filename));
browser.sleep(5000);
expect(fs.readFileSync(filename, {encoding: 'utf8'})).toEqual(content);

но он говорит, что имя файла не существует для readFileSync, и я предполагаю, что это связано с тем, что файл еще не загружен, а browser.sleep(5000) ничего не делает.

Есть ли другой способ сделать обещания в транспортире? Или может кто-нибудь подсказать мне, почему это может не работать? Я использую Protractor 2.1.0. Я запускал 1.0.0 и обновил все, прежде чем пытаться снова, но, увы, он все еще не работает.

С уважением, Джули


person JulieMarie    schedule 02.07.2015    source источник
comment
И я добавил параметры возможностей в свой файл protractor-conf.js, который предложил Лео.   -  person JulieMarie    schedule 02.07.2015


Ответы (1)


Я понял проблему. Имя моего файла не содержало пути, который я установил в каталоге default_directory моего файла protractor-conf.js. Как только я вставил весь путь, это сработало. Мальчик, я чувствую себя глупо!

person JulieMarie    schedule 02.07.2015