Транспортир - "angular не определен" при использовании `browser.setLocation('/')`
Это потому что browser.setLocation
не поддерживается в угловой версии v6 ( например, by.model
а также by.binding
)?
я пытался await browser.waitForAngular()
, но это ничего не меняет.
Я хочу сохранить синхронизацию между угловым / транспортиром (например, browser.ignoreSynchronization = true
а также browser.waitForAngularEnabled(true)
)
1 ответ
Похоже, что browser.setLocation
только для угловых v1, и я не смог найти альтернативу для угловых 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');