2016-12-07 48 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的变化,我认为,超时工作正常,但它没有找到页面中的元素,任何建议 –

相关问题