使用 Firefox 设置 Selenium 时如何解决“NoSuchSessionError”?

问题描述 投票:0回答:1

我是 Selenium(以及一般的自动化测试)新手,正在尝试将 Selenium 与 Node.js 结合使用,并使用 Firefox (104.0) 作为浏览器(在 MacOS 12.4 上)。

遵循几个在线教程,我有:

  1. 建立一个新的npm项目

  2. 安装了 Selenium Webdriver npm 包

  3. https://github.com/mozilla/geckodriver/releases下载geckodriver.exe

  4. 为 geckodriver 添加了新的 PATH 变量

  5. 设置以下 JS 测试脚本:

    var webdriver = require('selenium-webdriver');

    var driver = new webdriver.Builder()。 withCapability(webdriver.Capability.firefox())。 构建();

    driver.get('http://www.lambdatest.com'); driver.quit();

运行此脚本会打开 Firefox 一会儿,但随后会产生错误:

Selenium Manager binary found at /Users/me/Desktop/automated-testing/node_modules/selenium-webdriver/bin/macos/selenium-manager
Driver path: /Users/me/.cache/selenium/geckodriver/mac-arm64/0.33.0/geckodriver
Browser path: /Applications/Firefox.app/Contents/MacOS/firefox
/Users/me/Desktop/automated-testing/node_modules/selenium-webdriver/lib/error.js:524
    let err = new ctor(data.message)
              ^

NoSuchSessionError: Tried to run command without establishing a connection
    at Object.throwDecodedError (/Users/me/Desktop/automated-testing/node_modules/selenium-webdriver/lib/error.js:524:15)
    at parseHttpResponse (/Users/me/Desktop/automated-testing/node_modules/selenium-webdriver/lib/http.js:601:13)
    at Executor.execute (/Users/me/Desktop/automated-testing/node_modules/selenium-webdriver/lib/http.js:529:28)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async thenableWebDriverProxy.execute (/Users/me/Desktop/automated-testing/node_modules/selenium-webdriver/lib/webdriver.js:745:17) {
  remoteStacktrace: ''
}

我尝试清除缓存并移动 geckodriver 文件,但没有效果。我无法找到与此错误相关的任何其他与 Selenium 相关的内容。

有人知道我应该做什么吗?

node.js macos selenium-webdriver firefox geckodriver
1个回答
0
投票

事实证明这工作正常。在我的 JS 脚本中,我有这样一行:

driver.quit();

没有任何条件,当然,浏览器一打开就关闭了。

© www.soinside.com 2019 - 2024. All rights reserved.