Транспортир E2E ъглов ъглов не може да бъде намерен на прозореца

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

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 в конфигурацията на транспортир на '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
Не, беше друго нещо, освен транспортир. Задачата ми за преглъщане се изпълняваше грешно и пътят на chromdriver беше грешен, така че не можеше да направи нищо без операции на chrome. - person Oleksandr Verhun; 30.01.2015

Причината това да се случи, защото имах грешна инсталация на пътя на chromedriver. И затова получих това съобщение „angular не може да бъде намерен на прозореца“. Другият проблем, който имах, е, че трябваше да стартирам webdriver ръчно като фонов процес. Това се решава, като се направи правилна задача за преглъщане (която направих грешно), която ще изглежда по следния начин:

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

Да предположим, че ще помогне на някой, който ще има подобни (глупави) проблеми.

person Oleksandr Verhun    schedule 30.01.2015
comment
Бихте ли разяснили къде сте променили пътя на chromedriver? Пример за действителната ви задача за преглъщане с код също би бил полезен. Благодаря. - person Ian G; 11.10.2017