量角器:从元素中提取URL值并使用URL打开新的浏览器实例

时间:2015-02-12 11:38:57

标签: protractor

我正在尝试做以下事情:

  1. 获取包含例如URL的元素(在本例中为div)。 `ele =“www.xyz.com”。
  2. 使用getAttribute('value')getText() grep URL
  3. 使用此URL分叉新的浏览器实例并获取 URL

    newBrowser = browser.forkNewDriverInstance();  ele.getAttribute( '值')。然后(函数(VAL){       newBrowser.get(VAL);       });

  4. 我收到以下错误: RangeError:超出最大调用堆栈大小

    我尝试的第二种方法没有承诺,并且得到错误,说url应该是字符串而不是对象。

    如:

    var url = ele.getText();
    newBrowser.get(url);
    

    有没有办法将getText()返回的对象转换为字符串并存储到变量中,以便可以在其他地方使用。

1 个答案:

答案 0 :(得分:0)

在你的第二个appraoch中,ele.getText()会给你一个需要解决的承诺。您可以通过使用类似的东西来解决第二种方法的承诺 -

ele.getText().then(function(url){
newBrowser.get(url);
})

如果这不起作用,请尝试使用console.log(url)打印网址。我认为它是一个对象数组,您需要通过引用像url[0]url[1]这样的索引来获取所需的项目。尝试使用控制台日志打印所有这些值。