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。
Protractorの設定でframework
オプションを'jasmine2'
に変更すると、この問題が修正されました。
詳細については、 this thread を参照してください。
私のシナリオでは、ログインページは角度がなく、以下の方法を試し、私のために解決しました
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が提供する素晴らしい同期機能をお見逃しなく。
これが起こった理由は、chromedriverパスのインストールが間違っていたためです。それが、「窓に角度が見つかりません」というメッセージが表示された理由です。私が抱えていた他の問題は、バックグラウンドプロセスとしてwebdriverを手動で実行する必要があったことです。これは、右のgulpタスクを作成することで解決します(私は間違っていました)、それは次のようになります:
gulp.task ['test'], ->
runSequence start_server, run_protractor, end_server.
同様の(愚かな)問題を抱えている人を助けるとしましょう。