Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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
Javascript chromedriver不显示窗口开关的Nightwatch.js_Javascript_Google Chrome_Nightwatch.js - Fatal编程技术网

Javascript chromedriver不显示窗口开关的Nightwatch.js

Javascript chromedriver不显示窗口开关的Nightwatch.js,javascript,google-chrome,nightwatch.js,Javascript,Google Chrome,Nightwatch.js,众所周知,您永远不会知道太多的端到端测试框架,为此,我使用Nightwatch.js编写了一个基本实现。事情基本上运行得很好,但是我注意到“switchWindow()”函数有一个问题。基本上,我启动框架,打开一个窗口,然后打开第二个。我已经编写了一个函数 function switchWindow(win) { client.windowHandles(function(result) { var newWindow = result.value[win] this.swi

众所周知,您永远不会知道太多的端到端测试框架,为此,我使用Nightwatch.js编写了一个基本实现。事情基本上运行得很好,但是我注意到“switchWindow()”函数有一个问题。基本上,我启动框架,打开一个窗口,然后打开第二个。我已经编写了一个函数

function switchWindow(win) {
  client.windowHandles(function(result) {
    var newWindow = result.value[win]
    this.switchWindow(result.value[win]);
  });
}
它接受一个输入,告诉它切换到哪个窗口,然后它应该更改窗口。控件肯定在两个窗口之间移动。例如,如果我在第二个窗口上,那么我调用函数切换到第一个窗口,执行一些操作并检查操作是否成功,它会在第一个窗口上进行更改基于此的测试返回为绿色。然而,我从未真正看到浏览器移动到第一个窗口,它始终保持在最后一个打开的窗口(第二个窗口)

问题是,一个窗口中的更改会更改浏览器的本地存储,而其他窗口有一个事件侦听器,它会等待该更改并根据这些存储更改更新自己的页面内容。但是,如果控件位于第一个窗口,则在没有windo的情况下,更新不会正确地进行到第二个窗口ws来回切换。如果暂停执行(使用.pause()方法)然后在窗口之间手动单击更新。如果我不这样做,则更新无法正常进行,然后当我检查备用页面是否与第一个页面同步更新时,测试失败。我可以解决此问题,但结果是一个丑陋的测试流,非常脆弱

这又回到了我的主要问题,即为什么Chrome不能在浏览器之间切换,而不仅仅是来回切换控件?有没有办法让它这样做