当我调用switchToWindow(句柄)时,我收到以下错误: 条目中的空值:name = null
当我尝试切换并且句柄不为空或空时,原始窗口仍然打开。以下是我使用的代码:
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);
答案 0 :(得分:1)
命令链是一个JavaScript表达式。这意味着同步地一次评估链中所有调用的所有参数。在链接顶部附近的handle
回调中分配then
时,它不会影响链底部的switchToWindow
回调,因为{handle
1}}在执行then
回调之前已经被评估过了。
如果你想在链的早期保留对某个值的引用,并在以后使用它,那么这两个用法都应该在then
回调中。
return session
...
.then(function (currentHandle) {
handle = currentHandle;
})
...
.then(function () {
return session.switchToWindow(handle);
});