Транспортир - "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');
Другие вопросы по тегам