web-dev-qa-db-ja.com

分度器E2E angular "ウィンドウに角度が見つかりませんでした"

angular project 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にも同様の問題がいくつかありますが、解決策が見つかりませんでした。回答のためのThx。

17

Protractorの設定でframeworkオプションを'jasmine2'に変更すると、この問題が修正されました。

詳細については、 this thread を参照してください。

14
mms27

私のシナリオでは、ログインページは角度がなく、以下の方法を試し、私のために解決しました

browser.driver.findElement(By.id('username')).sendKeys('binnu');

分度器は、Angularアプリケーション、つまりHTMLの本文に_ng-app_タグを持つWebページと、Angular Javascriptファイルのコード。

Protractorが非常に役立つ理由は、Angularアプリケーションが非同期を実行するため、Webページのロード時に常にロードが終了するとは限らないことです。ほとんどのテストフレームワークは分度器は、バックグラウンドで実行されているすべてのAngularプロセスを検出するため、すべての準備が整う前に誤って何かをしないようにできます。

分度器があなたに言っていることは、ページ上で実行されているAngularプロセスが見つかりませんでした。ページは正常に動作するかもしれませんが、Angular分度器が認識できる方法。

それは分度器がページをテストできないことを意味しません。 browser.driver.any_webdriver_command_here()を使用して、通常のWebDriverコマンドにアクセスできます。 Protractorが提供する素晴らしい同期機能をお見逃しなく。

5
Isaac Lyman

これが起こった理由は、chromedriverパスのインストールが間違っていたためです。それが、「窓に角度が見つかりません」というメッセージが表示された理由です。私が抱えていた他の問題は、バックグラウンドプロセスとしてwebdriverを手動で実行する必要があったことです。これは、右のgulpタスクを作成することで解決します(私は間違っていました)、それは次のようになります:

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

同様の(愚かな)問題を抱えている人を助けるとしましょう。

2