是不是因为browser.setLocation
angular v6 不支持(比如by.model
和by.binding
)?
我试过await browser.waitForAngular()
了,但它似乎并没有改变任何东西。
我确实希望保持角度/量角器(例如browser.ignoreSynchronization = true
和browser.waitForAngularEnabled(true)
)之间的同步
是不是因为browser.setLocation
angular v6 不支持(比如by.model
和by.binding
)?
我试过await browser.waitForAngular()
了,但它似乎并没有改变任何东西。
我确实希望保持角度/量角器(例如browser.ignoreSynchronization = true
和browser.waitForAngularEnabled(true)
)之间的同步
看来这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');