Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Protractor 量角器:从元素中提取URL值并使用URL打开新的浏览器实例_Protractor - Fatal编程技术网

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

Protractor 量角器:从元素中提取URL值并使用URL打开新的浏览器实例,protractor,Protractor,我正努力做到以下几点: get元素(本例中为div)包含eg的URL。 `ele=“www.xyz.com” 使用getAttribute('value')或getText()来 grep网址 使用此URL创建浏览器的新实例并获取 网址 newBrowser=browser.forkNewDriverInstance(); ele.getAttribute('value')。然后(函数(val){ newBrowser.get(val); }); 我得到了以下错误: RangeError:超过最

我正努力做到以下几点:

  • get元素(本例中为div)包含eg的URL。 `ele=“www.xyz.com”
  • 使用
    getAttribute('value')
    getText()
    来 grep网址
  • 使用此URL创建浏览器的新实例并获取 网址

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

  • 我得到了以下错误: RangeError:超过最大调用堆栈大小

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

    例如:

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

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

    在第二次评估中,
    ele.getText()
    将为您提供一个需要解决的承诺。您可以使用类似这样的方法来解决第二种方法的承诺-

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

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

    我没有尝试您的第一种方法,但您应该获得分叉浏览器实例的句柄,如-`
    browser.getAllWindowHandles()。然后(函数(句柄){newWindowHandle=handles[1];browser.switchTo().window(newWindowHandle)。然后(函数(){})
    您正在使用的量角器版本是什么?量角器版本1.6.1如果是这种情况,请注释掉这一部分并运行。同样的错误仍然会出现。确认量角器设置没有问题。当我使用“browser.forkNewDriverInstance();”创建新的浏览器实例时。它是一个独立的实例,我可以使用“newBrowser”句柄使用它,而无需显式切换到它。我想即使使用“browser.getAllWindowHandles()”也只能获得一个实例,当您派生了一个新实例(如newBrowser)时。