2016-12-07 7 views
0

私は分度器を初めて使い、終わりから終わりまでのテストを実行しようとしています。私は他の回答者を試してみましたが、それでも私はこのよう 分度器が11秒後にページと同期するのを待つ時間が外されました

マイ分度器conf.js

が見え上記のエラーを取得しています:

directConnect: true, 
framework: 'jasmine', 
jasmineNodeOpts: { 
showColors: true, 
defaultTimeoutInterval: 2500000, 
getPageTimeout: 30000, 
print: function() {} 
}, 

spec.jsこの

describe('b2-bportral standardOrder', function() { 
let onlineOrderPage: OnlineOrderPage; 
let loginPage: LoginPage 

beforeEach(() => { 
    browser.driver.manage().window().maximize();; 
    loginPage = new LoginPage(); 
    loginPage.navigateTo(); 
    loginPage.setUserName("[email protected]"); 
    loginPage.setPassword("a"); 
    loginPage.loginClick(); 
    onlineOrderPage = new OnlineOrderPage(); 
    onlineOrderPage.navigateTo(); 
    browser.waitForAngular(); 
}); 
it('Standard Order',() => { 
    onlineOrderPage.setPartnerName(""); 

}); 
}); 

のように見えますpo.tsは次のようになります。

export class LoginPage { 
    navigateTo() { 
    return browser.get('#/login',30000); 
    } 
    setUserName(username:string) { 
    element(by.id("username")).sendKeys(username); 
    } 
    setPassword(password:string) { 
    element(by.id("password")).sendKeys(password); 
    } 
    loginClick(){ 
     return element(by.className("login")).click(); 
    } 

} 

export class OnlineOrderPage { 
    navigateTo() { 
     browser.get('url',30000); 
    } 
    setPartnerName(value:string){ 
     element(by.id('selPartnerName')).click(); 
     return element(by.cssContainingText('option', 'CANON MIDLE EAST')).click(); 
    } 
} 

エラー:

b2-bportral standardOrder 
× Standard Order 
- Failed: Timed out waiting for Protractor to synchronize with the page after 11 seconds. Please see https://github.com/angular/protractor/blob/master/docs/faq.md 
- Failed: Timed out waiting for Protractor to synchronize with the page after 11 seconds. Please see https://github.com/angular/protractor/blob/master/docs/faq.md 
While waiting for element with locator - Locator: By(css selector, *[id="selPartnerName"]) 

誰も私を導いてください

+0

は、設定オプション 'useAllAngular2AppRootsを設定してみてください。 https://github.com/angular/protractor/blob/master/lib/config.ts – Gunderson

答えて

1

分度器は、あなたのページをロードしようとしますが、それは完全にそれをロードすることができます前に、それがタイムアウト。 2つの可能性があります。最初に、ページの正しいURLを指定し、ページが実際にロードされ始めてタイムアウトになっていることを確認してください。

第二に、あなたは2つの方法でロードページ(デフォルトは10である)のタイムアウトを増やすことができますあなたの設定ファイルでは

  1. は、個々の機能のタイムアウトを指定しておきbrowser.get()
  2. ため タイムアウトを増やすことgetPageTimeout: 30000を設定しましたパラメータ付き、 例:browser.get("url", 30000);browser.driver.get()は1つのパラメータしか使用しないので、必ずbrowser.get()を使用してください。

また、上記の解決方法がうまくいかない場合は、webdriverのタイムアウトを設定してみてください。あなたはこのラインで設定ファイルに設定することができます。allScriptsTimeout: 30000

すべての値はミリ秒単位である

EDIT:すべての まずbrowser.pause()を入れて、それがブラウザを見て一時停止したときに、ID selPartnerNameを持つ要素が実際に存在するかどうか。 それは、このコードでもはやそれを待ってみ存在している場合:true`を:

var el = element(by.id('selPartnerName')); 
var EC = protractor.ExpectedConditions; 
browser.wait(EC.presenceOf(el), 30000); 
+0

こんにちは@FCin、正しいURLを指定しました。テストケースを実行すると、そのページに正しくリダイレ​​クトされ、エラーの数秒前に。今私はあなたが言ったようにすべてのbroserのタイムアウトを変更しましたが、それでもエラーは持続します。助けてください –

+0

そして、それらのタイムアウトはどうですか?彼らはあなたのために働くのですか? 'getPageTimeout'と' allScriptsTimeout'を使います。 – FCin

+0

タイムアウトのためconf.jsに変更がありましたが、タイムアウトはうまく機能していますが、ページ内の要素を見つけられないと思っています。ご意見 –

関連する問題