2016-12-07 46 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:TRUE'。 https://github.com/angular/protractor/blob/master/lib/config.ts – Gunderson

回答

1

量角器嘗試加載你的頁面,但超時,纔可以完全加載它。有兩種可能性。首先確保您爲網頁指定了正確的網址,並確保您的網頁在計時之前實際開始加載。

其次,你可以增加超時加載頁面(默認爲10)兩種方式:

  1. 在配置文件中設置getPageTimeout: 30000增加 超時每browser.get()
  2. 指定超時每個獨立的功能帶參數,用於 示例:browser.get("url", 30000);請注意,browser.driver.get()只使用1個參數,因此請務必使用browser.get()

此外,如果上述解決方案不適合你,你可能想嘗試爲webdriver設置超時。您可以使用此行來設置它的配置文件:allScriptsTimeout: 30000

所有值都以毫秒爲單位

編輯:所有的 先放browser.pause(),當它暫停看看瀏覽器,看看是否有ID selPartnerName元素確實存在。 如果它存在嘗試使用此代碼等待它長:

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的變化,我認爲,超時工作正常,但它沒有找到頁面中的元素,任何建議 –

相關問題