транспортир - "angular не определен" при использовании `browser.setLocation ('/')` - PullRequest
0 голосов
/ 15 мая 2018

Это потому что browser.setLocation не поддерживается в angular v6 (, как by.model и by.binding)?

Я пытался await browser.waitForAngular(), но, похоже, это ничего не меняет.

Я хочу сохранить синхронизацию между угловым / транспортиром (например, browser.ignoreSynchronization = true и browser.waitForAngularEnabled(true))

1 Ответ

0 голосов
/ 19 сентября 2018

Похоже, что browser.setLocation только для угловых v1, и я не смог найти альтернативу для угловых 2 +.

Я заставил его работать, выполнив скрипт для изменения URL, и угловой маршрутизатор сделает это без перезагрузки страницы (для этого RouterModule используется useHash):

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');
...