Вопрос:

Есть ли способ получить текущий относительный URL-адрес в транспортире?

selenium-webdriver protractor e2e-testing

1243 просмотра

2 ответа

2039 Репутация автора

Я начинаю тестировать проект Angular2 и хочу получить URL-адрес браузера в некоторых тестах, чтобы убедиться, что перенаправления сделаны правильно.

Проблема в том, что единственный метод, который я вижу в API для получения текущего URL - это webdriver.WebDriver.getCurrentUrl , но он возвращает абсолютный путь. Это может быть проблемой, если в будущем вы по какой-либо причине измените порт тестирования или имя хоста. Есть ли способ получить только относительный URL-адрес, как вы можете сделать с browser.get ? Благодарю.

Автор: Elias Garcia Источник Размещён: 09.03.2017 12:37

Ответы (2)


0 плюса

40307 Репутация автора

Я не уверен, что есть встроенный метод для того же.

Предположим, что есть URL, например,

http://example.com/some/path/resource 

В качестве последнего средства вы можете использовать приведенный ниже код

browser.executeScript("return '/' + window.location.href.split('/').slice(3).join('/');")

чтобы получить только

/some/path/resource

или же

browser.executeScript("return window.location.href.split('/')[window.location.href.split('/').length -1];")

получить

resource
Автор: Andersson Размещён: 09.03.2017 01:19

4 плюса

3226 Репутация автора

Решение

Для простоты - чтобы обрабатывать будущие изменения хоста и порта, вы можете просто сделать это.

expect(browser.getCurrentUrl()).toContain("/some/path/resource");

Автор: AdityaReddy Размещён: 09.03.2017 01:44
Вопросы из категории :
32x32