Protractor: エラー:タイムアウト-jasmine.DEFAULT_TIMEOUT_INTERVALで指定されたタイムアウト内に非同期コールバックが呼び出されませんでした

作成日 2016年02月19日  ·  26コメント  ·  ソース: angular/protractor

http://www.protractortest.org/#/tutorial 」の例を使用します

// spec.js
describe('Protractor Demo App', function() {
  it('should have a title', function() {
    browser.get('http://juliemr.github.io/protractor-demo/');

    expect(browser.getTitle()).toEqual('Super Calculator');
  });
});

// conf.js
exports.config = {
  framework: 'jasmine',
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['spec.js']
}

次に、でテストを実行します

protractor conf.js

次に、コンソールが表示されます。
image

needs more info

最も参考になるコメント

@sallojusuresh 、以下の解決策が機能しました。
jasmineNodeOpts:{
defaultTimeoutInterval:2500000
}、
質問-上記のようにデフォルトの時間を設定できる場合、「beforeEach」でsetTimeout関数を使用し、「it」でコールバックを実行します。 何か案が?

全てのコメント26件

以下の投稿で解決策を見つけることができます:投稿全体を確認してください。

https://github.com/angular/protractor/issues/2941#issuecomment -186104304

セレンを正常に開始できますか? directConnectを使用するとどうなりますか?

古い問題を閉じる。

私は同じ問題を抱えており、他の投稿は私のために機能しません。
@juliemrこれに対する解決策はありますか? allScriptsTimeout:900000を試しましたが、これで問題が解決しません。

私にとってもうまくいきません。 defaultTimeoutIntervalを増やしても解決しません

@juliemr同じ問題が発生していて、ScriptsTimeoutを増やしても機能しません。 これに対する解決策はありますか? ありがとう。

こんにちは、みんな、

分度器でテストケースを実行していると、タイムアウトエラーが発生します。 詳細はこちらです。 アドバイスを下さい。 ありがとう

エラー:タイムアウト-jasmine.DEFAULT_TIMEOUT_INTERVALで指定されたタイムアウト内に非同期コールバックが呼び出されませんでした。

sample_spec.js

describe( 'Mcacアプリテスト'、function(){
browser.get( 'http:// localhost:3000 / integrated / myWeb.html');
beforeEach(関数(完了){
window.jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
setTimeout(function(){
console.log( 'タイムアウト内');
終わり();
}、50000);
});
//browser.get('http://localhost:3000/integrated/myWeb.html ');
// browser.get( 'http:// localhost:3000 / integrated / myWeb.html')。then(function(){
it( 'メールアドレスの検証'、function()
{{

        element(by.model('ctrl.formData.emailAddress')).sendKeys('').clear();
        element(by.model('ctrl.formData.emailAddress')).sendKeys('[email protected]');
        element(by.model('ctrl.formData.emailAddress')).getAttribute('value').then(function (value) {
            expect(value).toEqual('[email protected]');
        });


}, 10000);

// element(by.xpath( "// button [text()= 'Confirm']"))。click();
browser.sleep(5000);

});

config.js

//設定ファイルの例。
exports.config = {
directConnect:true、

// Webdriverインスタンスに渡される機能。
機能:{
'browserName': 'chrome'
}、

//使用するフレームワーク。 ジャスミンをお勧めします。
フレームワーク: 'ジャスミン'、

//スペックパターンは、次の場合に現在の作業ディレクトリに相対的です
//分度器が呼び出されます。
//仕様:['example_spec.js']、
//仕様:['mcac_spec.js']、
//仕様:['mcac_spec_mobile.js']、
仕様:['mcac_online.js']、
// Jasmineに渡されるオプション。
jasmineNodeOpts:{
defaultTimeoutInterval:5000
}

};

どんな助けでも大歓迎です。

私はこの問題を抱えていましたが、それは$timeoutが繰り返されたことが原因でした( $timeoutは分度器をブロックしますが、 $intervalはブロックしません)。

繰り返される$ timeoutを見つけるには、次のように分度器の要素エクスプローラーを使用できます。

$ protractor config/protractor.js --elementExplorer
Starting debugger agent.
Debugger listening on port 5858
> var body = element(by.css('body'))
> body.isPresent()
ScriptTimeoutError: Timed out waiting for asynchronous Angular tasks to finish after 15 seconds. This may be because the current page is not an Angular application. Please see the FAQ for more details: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular
While waiting for element with locator - Locator: By(css selector, body). 
The following tasks were pending:
 - $timeout: function () {
        // ......
    }

ありがとう。

問題を見つけました。 URLの読み込みには時間がかかり、探しているためです
htmlページのng-appタグ。

よろしくお願いします、
ナレンドラ

ナレンドラ…!

2016年12月15日06:12、 AmyBoydnotifications @ github.comは次のように書いています。

この問題が発生しましたが、これは$ timeout($ timeout)が繰り返されたことが原因でした。
分度器をブロックしますが、$ intervalはブロックしません)。

繰り返される$ timeoutを見つけるには、分度器の要素エクスプローラーを使用できます。
例えば:

$分度器config / protractor.js --elementExplorer
デバッガエージェントを起動しています。
ポート5858でリッスンしているデバッガー

var body = element(by.css( 'body'))
body.isPresent()
ScriptTimeoutError:非同期Angularタスクが15秒後に終了するのを待ってタイムアウトしました。 これは、現在のページがAngularアプリケーションではないことが原因である可能性があります。 詳細については、FAQを参照してください: https ://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting -for-angular
ロケーターで要素を待っている間-ロケーター:By(cssセレクター、本体)。
次のタスクが保留されていました。

  • $ timeout:function(){
    //.....。
    }


コメントしたのでこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/angular/protractor/issues/2963#issuecomment-267302567
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/AViSFkiN29oWnH6AJ0P_wNY_LNzE2fglks5rISCYgaJpZM4Hd20v

こんにちは、みんな、

分度器でテストケースを実行していると、タイムアウトエラーが発生します。 詳細はこちらです。 アドバイスを下さい。 ありがとう

失敗:非同期Angularタスクが30秒後に終了するのを待ってタイムアウトしました。 これは、現在のページがAngularアプリケーションではないことが原因である可能性があります。

@sallojusuresh 、以下の解決策が機能しました。
jasmineNodeOpts:{
defaultTimeoutInterval:2500000
}、
質問-上記のようにデフォルトの時間を設定できる場合、「beforeEach」でsetTimeout関数を使用し、「it」でコールバックを実行します。 何か案が?

私は次の方法で修正しました

 var originalTimeout;

    beforeEach(function() {
        originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
        jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
    });

    afterEach(function() {
      jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
    });

ありがとう。

ナレンドラ…!

2018年3月11日23:53、 Md。ZahirulHaquenotifications @github.com
書きました:

私は次の方法で修正しました

`var originalTimeout;

beforeEach(function(){
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
});

afterEach(function(){
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
}); `


コメントしたのでこれを受け取っています。
このメールに直接返信し、GitHubで表示してください
https://github.com/angular/protractor/issues/2963#issuecomment-372187210
またはスレッドをミュートします
https://github.com/notifications/unsubscribe-auth/AViSFg7ITAW3XW5zky_-QXXmAudt11qDks5tdfE1gaJpZM4Hd20v

@NickTomlinあなたはちょうど私の日を作りました:)私はdirectconnectを使用して働きました。 directconnectが実際に何をするのかを明らかにするのは素晴らしいことです

私の場合、このエラーは「fixture.detectChanges()」の不適切な使用が原因で発生しました。このメソッドは、変更が検出されたときにのみコールバックに応答するイベントリスナー(非同期)のようです。 変更が検出されない場合、コールバックは呼び出されず、タイムアウトエラーが発生します。 お役に立てれば :)

@ juliemrTimeout -jasmine.DEFAULT_TIMEOUT_INTERVALで指定されたタイムアウト内に非同期コールバックが呼び出されませんでした。 このエラーが再び私のテストで発生しました。それぞれの前に、それぞれの後に、browser.sleepを使用して、ジャスミンタイムアウトの反復を100000まで増やしました。しかし、コードが実行されないので、何ができるか教えてください。

この問題が発生し、ジャスミンのタイムアウトを300000まで増やしても解決できません。そのため、plsはそのために何をすべきかを提案します。

簡単な例を教えてください。

これに対する解決策は、角度のないアプリのテストを作成しようとしている場合は、node_modules / protractor / builtのrunner.jsに移動することです。
行#210をwaitForAngularEnabledに編集します:false // true

@juliemrは、この設定を構成可能にするための提案です。

onPrepare()セクションでそれを行うことができます:

onPrepare: async () => {
    await browser.waitForAngularEnabled(false);
    ....
}

同じ問題が発生しましたが、ここで提供されている解決策はうまくいきませんでした。 時間があれば、StackOverflowに関する私の質問をご覧ください。 問題は簡単に再現でき、レポがあります。 バグの可能性があると思います。
https://stackoverflow.com/questions/53786401/error-debugging-protractor-with-node-8-async-await-and-angular-6

falseがtrueに等しいと予想される理由: console:Entry {に存在するエラーログ
level:Level {name _: 'SEVERE'、value_:1000}、
メッセージ:
「エラー」エラー:formGroupはFormGroupインスタンスを予期しています。 1つ渡してください。\ n \ n例:\ n \ n \ n

\ n \ n
\ n \ nクラス内:\ n \ nthis.myGroup = new FormGroup({\ n firstName:new FormControl()\ n}); \ n at Function.e.missingFormException

ポップアップボタンをクリックしているときに問題が発生しましたが、解決策はありますか?

postでも同様の問題があり、インポートにHttpClientModuleを追加する際の問題を解決しました。

beforeEach(()=> {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

});

postでも同様の問題があり、インポートにHttpClientModuleを追加する際の問題を解決しました。

beforeEach(()=> {

TestBed.configureTestingModule({

    declarations: [],

    providers: [ CookieService, HttpClient],  

    imports: [HttpClientModule],
});

});

私は個人的に、テストベッド内にHttpClientModuleをインポートする際に問題が発生しました。 単体テストでAPIを実行しようとしますが、その結果、失敗します。 正しいアプローチは、HttpClientTestingModuleを使用することです

@sallojusuresh 、以下の解決策が機能しました。
jasmineNodeOpts:{
defaultTimeoutInterval:2500000
}、
質問-上記のようにデフォルトの時間を設定できる場合、「beforeEach」でsetTimeout関数を使用し、「it」でコールバックを実行します。 何か案が?

これが最善の解決策です。このコードをurconfingファイルに貼り付けるだけで、urの問題が解決するはずです。

このページは役に立ちましたか?
0 / 5 - 0 評価