使用 intern leadfoot 尝试切换回原始浏览器 window 时出错

Error when trying to switch back to the original browser window using intern leadfoot

调用 switchToWindow(handle) 时出现以下错误: 条目中的空值:name=null

原来的window在我尝试切换的时候还是打开的,handle is not null or empty。这是我正在使用的代码:

var session = this.remote;
var handle;

return session
    .get('http://www.google.com')
    .getCurrentWindowHandle()
    .then(function (currentHandle) {
        console.log('handle: ' + currentHandle);
        handle = currentHandle;
    })
    .execute(function() {
        var newWindow = window.open('https://www.instagram.com/', 'insta');
    })
    .switchToWindow('insta')
    .closeCurrentWindow()
    .then(function () {
        console.log('old handle: ' + handle);
    })
    .sleep(2000)
    .switchToWindow(handle);

命令链是单个 JavaScript 表达式。这意味着链中所有调用的所有参数都会同时同步求值。当 handle 在链顶部附近的 then 回调中分配时,它不会影响链底部的 switchToWindow 调用,因为 [=11= 的值] 在 then 回调执行之前已经被评估。

如果您想在链的早期保留对某个值的引用,并在以后使用它,这两种使用都应该在 then 回调中。

return session
    ...
    .then(function (currentHandle) {
        handle = currentHandle;
    })
    ...
    .then(function () {
        return session.switchToWindow(handle);
    });