2015-05-05 7 views
1

Я пытался получить текущий URL-адрес и хочу вырезать части URL-адреса для использования в другом методе. Я пробовал много способов, и одно решение, которое я видел в Интернете, предложил использовать метод beforeEach(). Я пробовал это и неважно, this.urlString всегда возвращает неопределенные.Транспортир: Сохранение URL-адреса в переменной для разбора возвращает «undefined»

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

this.urlString; 

beforeEach(function() { 
    mainPO.navigateHome(); 
    mainPO.clickCurrent(); 

    browser.getCurrentUrl().then(function (url) { 
    return this.urlString = url; 
    }); 
}); 

console.log(this.urlString) 

То, что я хочу сделать, это сохранить URL в строку, а затем разобрать строку вырезать все до «.com» в URL, так что я могу взять строку и вставить его в другой URL для переползая по другой ссылке.

ответ

2

Для того, чтобы получить значение URL в виде строки, вы должны решить обещание, возвращаемый вызовом функции browser.getCurrentUrl():

beforeEach(function() { 
    mainPO.navigateHome(); 
    mainPO.clickCurrent(); 

    this.urlString = browser.getCurrentUrl(); 
}); 

this.urlString.then(function (url) { 
    console.log(url); 
}); 
+0

Если я использую это, я был бы в состоянии назвать this.urlString, чтобы получить URL? Или мне нужно придерживаться этого в другом методе для вызова? В сущности, вместо console.log (url), я использую url.split (". Com"). Pop(), чтобы удалить .com и все, что было в URL, чтобы я мог подключить результат к другому объекту , – user249656

+0

@ user249656 да, но вы всегда должны помнить, что 'urlString' вернет вам обещание, которое необходимо решить. – alecxe

+0

Спасибо! У вас есть какие-либо статьи/ссылки, объясняющие обещания, и поэтому я понимаю их лучше? – user249656

 Смежные вопросы

  • Нет связанных вопросов^_^