Javascript 量角器-开关卡舌错误

Javascript 量角器-开关卡舌错误,javascript,selenium,selenium-webdriver,protractor,angularjs-e2e,Javascript,Selenium,Selenium Webdriver,Protractor,Angularjs E2e,我试图切换到另一个选项卡并使用该新选项卡上的控件,但出现以下错误: 未知错误:条目中的值为null:name=null 这是测试(重要部分): 测试中还有其他部分,但它不相关,因为我在这部分中得到了错误。 流程如下: 单击链接后,选项卡被打开,似乎切换到新选项卡,然后失败并关闭窗口 而不是flow.timeout(5000)这样使用: 使用以下命令代替第二个flow.timeout(5000) browser.wait(function() { return browser.getCur

我试图切换到另一个选项卡并使用该新选项卡上的控件,但出现以下错误:

未知错误:条目中的值为null:name=null

这是测试(重要部分):

测试中还有其他部分,但它不相关,因为我在这部分中得到了错误。 流程如下:
单击链接后,选项卡被打开,似乎切换到新选项卡,然后失败并关闭窗口

而不是
flow.timeout(5000)
这样使用:

使用以下命令代替第二个
flow.timeout(5000)

browser.wait(function() {
    return browser.getCurrentUrl().then(function (url){
        return url = "url of the second tab";
    });
}, 5000);

它看起来更干净,处理得更好,而且最重要的是,如果我错了,它可以纠正我,但不是浏览器。getAllWindowHandles()获取浏览器中所有打开的窗口?你说它切换到选项卡并失败和关闭,对我来说,链接似乎只是打开一个选项卡并切换焦点,而你没有成功切换到该选项卡。我也在想,但似乎Windows和选项卡的切换方式相同。你能打印
浏览器。getAllWindowHandles()
并查看你得到的值吗?如果你得到2,那么你所做的是有效的,如果不是,那么你不应该切换窗口。在同一页面中切换选项卡时,我认为不需要窗口句柄。我将此用作引用:。无论如何-如果不是通过browser.getAllWindowHandles(),您知道如何在选项卡之间切换吗?我已尝试打印“getAllWindoHandles()”,但得到了一个长对象。很抱歉造成了混淆,我询问您是否可以打印“getAllWindowHandles()”结果。i、 e,
句柄。长度
值。然而,如果点击时浏览器中打开了一个新的选项卡,那么上面的方法应该可以帮助您。还要检查代码执行时是否真的打开了新的浏览器选项卡。
browser.wait(function() {
    return handles.length > 1
}, 5000);
browser.wait(function() {
    return browser.getCurrentUrl().then(function (url){
        return url = "url of the second tab";
    });
}, 5000);