Тест транспортира не распознает глобальную переменную, определенную в методе onPrepare в protractor.conf.js - PullRequest
0 голосов
/ 30 ноября 2018

Я определил глобальную переменную в моем файле protractor.conf.js следующим образом:

onPrepare() {
    global.EC = protractor.ExpectedConditions;
}

Я пытаюсь получить доступ к этой переменной в моем тесте транспортира следующим образом:

navigateTo(url: string): LoginPage {
    browser.get(url);    
    browser.wait(EC.urlIs(url), 2000);
    return this;
}

Однако моя спецификация не распознает EC.В журнале вывода, а также в IntelliSense кода VS указано

Не удается найти имя EC.

1 Ответ

0 голосов
/ 30 ноября 2018

Я не проверял, есть ли различия в способе представления глобалов через конфигурацию транспортира, но способ, которым я использую его и он хорошо работает в нашем наборе тестов, выглядит так:

 onPrepare: () => {
  EC = protractor.ExpectedConditions;

  DEFAULT_TIMEOUT = browser.params['timeout'];
  if (!DEFAULT_TIMEOUT) {
    DEFAULT_TIMEOUT = 60000;
  }

  chai = require('chai');
  chaiAsPromised = require('chai-as-promised');
  chai.use(chaiAsPromised);
  expect = chai.expect;
  ...
}

Так что яне используйте «глобальный», а выставляйте напрямую и используйте его, например, так:

openCreateDialog() {
  let createButton = $('.create-new');
  browser.wait(EC.elementToBeClickable(createButton), DEFAULT_TIMEOUT);
  createButton.click();
  let dialog = new NewDialog();
  dialog.waitUntilOpened();
  return dialog.getCreatePanel();
}
...