Транспортир E2E угловой угловой не удалось найти на окне

У меня странная ошибка после запуска моих тестов в угловом проекте Error: Error while waiting for Protractor to sync with the page: "angular could not be found on the window". Моя конфигурация Protractor выглядит так:

require('coffee-script').register();

exports.config = {
  seleniumServerJar: './node_modules/protractor/selenium/selenium-server-standalone-2.39.0.jar',
  seleniumAddress: 'http://localhost:4444/wd/hub',

  capabilities: {
    browserName: 'chrome'
    //'chromeOptions': {
    //  'args': ['--disable-extensions']
    //}
  },

  specs: [
    '*_spec.coffee'
  ],

  allScriptsTimeout: 10000000000,
  baseUrl: 'http://localhost:9003/',

  jasmineNodeOpts: {
    isVerbose: false,
    showColors: true,
    includeStackTrace: true,
    defaultTimeoutInterval: 10000000000
  }
};

И тест:

loginPage = require './pages/log_in_page'

describe 'Log In', ->

      it 'shows after login', ->
        loginPage()
        .setEmail('[email protected]')
        .setPass('a46s75d4as765d4a6s7d54as76d5as74das76d5')

Получить информацию со страницы:

module.exports = ->
      @email = element By.css '.test-i-login'
      @password = element By.css '.test-i-password'

      @setEmail = (name) =>
        @email.sendKeys(name)
        this

      @setPass = (number) =>
        @password.sendKeys(number)
        this
      this

На github есть похожие проблемы, но там я не нашел подходящего решения. Спасибо за ответ.


person Oleksandr Verhun    schedule 29.01.2015    source источник
comment
Возможно ли, что окно, о котором вы говорите, не является угловым? Такая ошибка появляется в таком случае   -  person Sakshi Singla    schedule 30.01.2015


Ответы (4)


Изменение параметра framework в конфигурации Protractor на 'jasmine2' устранило эту проблему для меня.

Дополнительную информацию см. в этой ветке.

person mms27    schedule 21.04.2015
comment
да, это сработало для меня. у меня возникла эта проблема после обновления до транспортира 2.0. просто добавьте framework: 'jasmine2', в файл conf.js - person Malik; 08.05.2015

В моем сценарии страница входа не угловая, попробовал способ ниже, сработало для меня

browser.driver.findElement(By.id('username')).sendKeys('binnu');
person Binnu Jesudasan Gudapati    schedule 23.05.2015

Protractor создан для тестирования приложений Angular, то есть веб-страниц с тегом ng-app в теле HTML и контроллеров, соответствующих коду Angular в файле Javascript.

Причина, по которой Protractor так полезен, заключается в том, что приложения Angular работают асинхронно, а это означает, что они не всегда заканчивают загрузку, когда загружается веб-страница. Большинство тестовых фреймворков попытаются щелкнуть что-то, ввести что-то и т. д. до того, как страница будет полностью готова. Protractor обнаруживает все процессы Angular, работающие в фоновом режиме, чтобы вы случайно не сделали что-то до того, как все будет готово.

Что Protractor говорит вам, так это то, что он не нашел никаких процессов Angular, запущенных на странице. Ваша страница может работать нормально, но она просто не полагается на Angular так, как это может распознать Protractor.

Это не означает, что Protractor не может протестировать страницу. Вы можете получить доступ к обычным командам WebDriver, используя browser.driver.any_webdriver_command_here(). Вы просто упустите фантастические возможности синхронизации, которые предлагает Protractor.

person Isaac Lyman    schedule 29.01.2015
comment
Нет, это была другая вещь, чем транспортир. У меня была неправильная задача gulp и неправильный путь chromedriver, так что она ничего не могла сделать без операций chrome. - person Oleksandr Verhun; 30.01.2015

Причина, по которой это произошло, заключалась в том, что у меня была неправильная установка пути chromedriver. И поэтому я получил это сообщение «угловой не может быть найден в окне». Другая проблема, с которой я столкнулся, заключалась в том, что мне нужно было запускать веб-драйвер вручную в качестве фонового процесса. Это решается путем создания правильной задачи gulp (которую я сделал неправильно), которая будет выглядеть примерно так:

gulp.task ['test'], ->
   runSequence start_server, run_protractor, end_server.

Предположим, это поможет кому-то, у кого будут похожие (глупые) проблемы.

person Oleksandr Verhun    schedule 30.01.2015
comment
Не могли бы вы уточнить, где вы изменили путь к хромированному драйверу? Также будет полезен пример вашей реальной задачи gulp с кодом. Спасибо. - person Ian G; 11.10.2017