等到页面加载量angular器

我有一个login屏幕,当我按下loginbutton去仪表板页面。 不过,我经常想念我的超时时间。 按下button时是否有可能等待页面加载?

我的方法在app.po.ts

login() { element(by.name('username')).sendKeys(browser.params[0].UserName); element(by.name('password')).sendKeys(browser.params[0].Password); element(by.partialButtonText('SignIn')).click(); browser.sleep(5000); } 

testing在这里完成app.e2e-spec.ts

 it('should be able to login', () => { page.navigateToHome(); page.login(); page.browserSleep(); }); 

您可以使用browser.wait方法等待仪表板内的特定项目出现,如下所示:

 browser.wait(protractor.ExpectedConditions.visibilityOf(someElement), 10000, "Dashboard never loaded"); 

如果您使用量angular器4或以上angular4可以利用asyncawait

所以你的lofin函数是一个asynchronous函数,在调用的时候你会等待它完成asynchronous调用。

 async login() { element(by.name('username')).sendKeys(browser.params[0].UserName); element(by.name('password')).sendKeys(browser.params[0].Password); element(by.partialButtonText('SignIn')).click(); browser.sleep(5000); } it('should be able to login', async () => { await page.navigateToHome(); await page.login(); // page.browserSleep(); you dont need to use page sleep as its not requred }); 

您可能需要定义