2015-05-05 43 views
1

我一直在试图获取当前的URL,并且想要剪出要在另一个方法中使用的URL部分。 我已经尝试了很多方法,并且我在网上看到的一个解决方案建议使用beforeEach()方法。我一直在尝试这个,无论如何,this.urlString总是返回undefined。量角器:将URL存储在要解析的变量中返回“undefined”

继承人我现在有什么。我一定错过了为什么这是返回未定义的东西,但我无法弄清楚。

this.urlString; 

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

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

console.log(this.urlString) 

我想要做的是什么URL存储在一个字符串,然后解析字符串的URL的“.COM”之前削减了一切,所以我可以把字符串,并将其插入到另一个网址爬到另一个链接。

回答

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检索网址?或者我需要用另一种方法来坚持这个调用? 从本质上而不是console.log(url),我使用url.split(“。com”)。pop()删除.com和URL中的所有内容,这样我就可以将结果插入另一个对象。 – user249656

+0

@ user249656是的,但你应该时刻记住'urlString'会给你一个需要解决的承诺。 – alecxe

+0

谢谢!你有任何文章/链接解释承诺等,所以我更好地理解他们? – user249656