Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Node.js 为什么我会得到;“无窗口错误”;错误与“;getWindowHandle";何时返回当前窗口句柄?_Node.js_Selenium_Selenium Webdriver - Fatal编程技术网

Node.js 为什么我会得到;“无窗口错误”;错误与“;getWindowHandle";何时返回当前窗口句柄?

Node.js 为什么我会得到;“无窗口错误”;错误与“;getWindowHandle";何时返回当前窗口句柄?,node.js,selenium,selenium-webdriver,Node.js,Selenium,Selenium Webdriver,在第二章中,他说: 调度命令以检索当前窗口句柄 但是,当我尝试使用从这个返回的句柄执行某些操作时,它会抛出“NoSuchWindowError”。这怎么可能呢?如果是当前窗口,则不应关闭该窗口。如果已关闭,则当前窗口是另一个窗口。对吧? 使用: 用于javascript/node.js的Webdriver 镀铬器 更新2: 看起来像是一场灾难。关闭的窗口是facebook登录 以下是如何复制: 转到请求facebook登录的某个页面 出现facebook登录弹出窗口 您登录 faceboo

在第二章中,他说:

调度命令以检索当前窗口句柄

但是,当我尝试使用从这个返回的句柄执行某些操作时,它会抛出“NoSuchWindowError”。这怎么可能呢?如果是当前窗口,则不应关闭该窗口。如果已关闭,则当前窗口是另一个窗口。对吧?

使用:

  • 用于javascript/node.js的Webdriver
  • 镀铬器
更新2:

看起来像是一场灾难。关闭的窗口是facebook登录

以下是如何复制:

  • 转到请求facebook登录的某个页面
  • 出现facebook登录弹出窗口
  • 您登录
  • facebook窗口关闭
  • 现在,如果您尝试获取当前句柄,则会出现此错误
按要求:

我想获得窗口标题或类似的内容,这并不重要,我只需要句柄id

下面是完整的错误堆栈,它不是很有用:

[8.572][SEVERE]: Unable to receive message from renderer
FF

(::) failed steps (::)

NoSuchWindowError: no such window: target window already closed
  at Object.Future.wait (c:\app\node_modules\fibers\future.js:398:15)
  at [object Object]._.extend.update (c:\app\tests\shared\Browser.js:183:62)
  at [object Object].<anonymous> (c:\app\tests\shared\Browser.js:138:18)
  at c:\app\node_modules\fibers\future.js:416:21

    - - - - -
from unknown error: web view not found
  (Session info: chrome=40.0.2214.111)
  (Driver info: chromedriver=2.9.248315,platform=Windows NT 6.1 SP1 x86)
    at new bot.Error (c:\app\node_modules\selenium-webdriver\lib\atoms\error.js:113:18)
    at Object.bot.response.checkResponse (c:\app\node_modules\selenium-webdriver\lib\atoms\response.js:106:9)
    at c:\app\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:362:20
    at c:\app\node_modules\selenium-webdriver\lib\goog\base.js:1582:15
    at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:1654:20)
    at notify (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:465:12)
    at notifyAll (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:442:7)
    at resolve (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:420:7)
    at [object Object].fulfill (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:535:5)
    at c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:1520:10
    at c:\app\node_modules\selenium-webdriver\lib\goog\base.js:1582:15
    at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:1654:20)
    at notify (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:465:12)
    at notifyAll (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:442:7)
    at resolve (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:420:7)
    at fulfill (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:535:5)
    at c:\app\node_modules\selenium-webdriver\lib\goog\base.js:1582:15
    at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:1654:20)
    at notify (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:465:12)
    at notifyAll (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:442:7)
    at resolve (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:420:7)
    at [object Object].fulfill (c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:535:5)
    at c:\app\node_modules\selenium-webdriver\lib\webdriver\promise.js:721:49
    at c:\app\node_modules\selenium-webdriver\lib\webdriver\http\http.js:96:5
    at IncomingMessage.<anonymous> (c:\app\node_modules\selenium-webdriver\http\index.js:131:7)
    at IncomingMessage.emit (events.js:117:20)
    at _stream_readable.js:943:16
    at process._tickDomainCallback (node.js:463:13)
==== async task ====
WebDriver.getWindowHandle()
    at [object Object].webdriver.WebDriver.schedule (c:\app\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:345:15)
    at [object Object].webdriver.WebDriver.getWindowHandle (c:\app\node_modules\selenium-webdriver\lib\webdriver\webdriver.js:672:15)
    at [object Object].<anonymous> (c:\app\tests\shared\Browser.js:23:12)
    at [object Object].fn [as f_getWindowHandle] (c:\app\node_modules\fibers\future.js:89:26)
    at [object Object]._.extend.update (c:\app\tests\shared\Browser.js:183:42)
    at [object Object].<anonymous> (c:\app\tests\shared\Browser.js:138:18)
    at c:\app\node_modules\fibers\future.js:416:21
[8.572][SEVERE]:无法从渲染器接收消息
FF
(:)失败的步骤(:)
NoSuchWindowError:没有这样的窗口:目标窗口已关闭
在Object.Future.wait(c:\app\node\u modules\fibers\Future.js:398:15)
在[object object].\uu.extend.update(c:\app\tests\shared\Browser.js:183:62)
在[对象]。(c:\app\tests\shared\Browser.js:138:18)
在c:\app\node\u modules\fibers\future.js:416:21
- - - - -
来自未知错误:找不到web视图
(会话信息:chrome=40.0.2214.111)
(驱动程序信息:chromedriver=2.9.248315,平台=Windows NT 6.1 SP1 x86)
在新的bot.Error(c:\app\node\u modules\selenium webdriver\lib\atoms\Error.js:113:18)
在Object.bot.response.checkResponse(c:\app\node\u modules\selenium webdriver\lib\atoms\response.js:106:9)
位于c:\app\node\u modules\selenium webdriver\lib\webdriver\webdriver.js:362:20
位于c:\app\node\u modules\selenium webdriver\lib\goog\base.js:1582:15
在[object object].webdriver.promise.ControlFlow.runInNewFrame(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:1654:20)
通知时(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:465:12)
在notifyAll(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:442:7)
解析时(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:420:7)
在[object object]完成(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:535:5)
位于c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:1520:10
位于c:\app\node\u modules\selenium webdriver\lib\goog\base.js:1582:15
在[object object].webdriver.promise.ControlFlow.runInNewFrame(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:1654:20)
通知时(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:465:12)
在notifyAll(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:442:7)
解析时(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:420:7)
完成时(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:535:5)
位于c:\app\node\u modules\selenium webdriver\lib\goog\base.js:1582:15
在[object object].webdriver.promise.ControlFlow.runInNewFrame(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:1654:20)
通知时(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:465:12)
在notifyAll(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:442:7)
解析时(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:420:7)
在[object object]完成(c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:535:5)
在c:\app\node\u modules\selenium webdriver\lib\webdriver\promise.js:721:49
位于c:\app\node\u modules\selenium webdriver\lib\webdriver\http\http.js:96:5
在收到消息时。(c:\app\node\u modules\selenium webdriver\http\index.js:131:7)
在IncomingMessage.emit(events.js:117:20)
在_stream_readable.js:943:16
在进程中。_tickDomainCallback(node.js:463:13)
==异步任务====
WebDriver.getWindowHandle()
位于[object object].webdriver.webdriver.schedule(c:\app\node\u modules\selenium webdriver\lib\webdriver\webdriver.js:345:15)
位于[object object].webdriver.webdriver.getWindowHandle(c:\app\node\u modules\selenium webdriver\lib\webdriver\webdriver.js:672:15)
在[对象]。(c:\app\tests\shared\Browser.js:23:12)
在[object object].fn[as f_getWindowHandle](c:\app\node\u modules\fibers\future.js:89:26)
在[object object].\uu.extend.update(c:\app\tests\shared\Browser.js:183:42)
在[对象]。(c:\app\tests\shared\Browser.js:138:18)
在c:\app\node\u modules\fibers\future.js:416:21
试试看

然后你会看到chrome是打开的,不要关闭它。然后试试看

driver.get('http://www.google.com')

给出一个示例,说明您试图如何处理句柄和错误回溯。谢谢。我刚刚更新了这个问题(:谢谢你,你是想使用FireFox selenium IDE,还是有权使用支持selenium的编程语言?没有,我是在chromedriver上使用raw node.js/javascript webdriver。
driver.get('http://www.google.com')