2

是不是因为browser.setLocationangular v6 不支持(比如by.modelby.binding)?

我试过await browser.waitForAngular()了,但它似乎并没有改变任何东西。

我确实希望保持角度/量角器(例如browser.ignoreSynchronization = truebrowser.waitForAngularEnabled(true))之间的同步

4

1 回答 1

1

看来这browser.setLocation仅适用于 angular v1,我找不到 angular 2+ 的替代方案。

我通过执行脚本来更改 URL 来使其工作,并且角度路由器将在不重新加载页面的情况下执行此操作(这useHash用于RouterModule):

const setLocation = url =>
  browser.executeScript(pUrl => window.location.href = `/#/${pUrl}`, url);

然后它的工作原理类似于browser.setLocation

 browser.get('http://angular.github.io/protractor/#/tutorial');
 setLocation('api');
 expect(browser.getCurrentUrl())
   .toBe('http://angular.github.io/protractor/#/api');
于 2018-09-19T05:21:15.793 回答