当前位置: 首页 > 面试题库 >

NoSuchWindowError:浏览上下文已被GeckoDriver Firefox和Protractor(Selenium)丢弃

荆学民
2023-03-14
问题内容

我正在尝试使用量角器运行一个简单的测试脚本

环境:

Node Version: v9.8.0
Protractor Version: 5.4.1
Angular Version: 1.x
Browser(s): Mozilla Firefox 60.1.0
Operating System and Version: HELiOS release 6.10

这是我的量角器配置文件。

exports.config = {
  specs: ['todo-spec.js'],
  capabilities: {
    browserName: 'firefox',
    marionette : true
  }
};

这是我的测试脚本(todo-spec.js)

describe('application homepage', function() {
  it('should open homepage', function() {
    console.log("Opening localhost app");
    browser.get('http://localhost:8080/app/');
    browser.sleep(20000); // just to check if application loaded or not
  });
});

这是我的 node_modules / protractor / node_modules / webdriver-manager / selenium
/
目录,如下所示:

在此处输入图片说明

使用进行测试时/path/to/protractor conf.js,出现以下错误。

[16:51:03] I/launcher - Running 1 instances of WebDriver
[16:51:03] I/local - Starting selenium standalone server...
[16:51:04] I/local - Selenium standalone server started at http://<ip-address>:45089/wd/hub
Started
Opening localhost
F

Failures:
1) application homepage should open homepage
  Message:
    Failed: Browsing context has been discarded
    Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:13:22.693Z'
    System info: host: 'HOSTNAME', ip: 'ip_address', os.name: 'Linux', os.arch: 'i386', os.version: '2.6.32-754.3.5.el6.x86_64', java.version: '1.8.0_181'
    Driver info: driver.version: unknown
  Stack:
    NoSuchWindowError: Browsing context has been discarded
    Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:13:22.693Z'
    System info: host: 'HOSTNAME', ip: 'ip_address', os.name: 'Linux', os.arch: 'i386', os.version: '2.6.32-754.3.5.el6.x86_64', java.version: '1.8.0_181'
    Driver info: driver.version: unknown
        at Object.checkLegacyResponse (/export/home/test/protractor_test_2/node_modules/selenium-webdriver/lib/error.js:546:15)
        at parseHttpResponse (/export/home/test/protractor_test_2/node_modules/selenium-webdriver/lib/http.js:509:13)
        at doSend.then.response (/export/home/test/protractor_test_2/node_modules/selenium-webdriver/lib/http.js:441:30)
        at <anonymous>
        at process._tickCallback (internal/process/next_tick.js:118:7)
    From: Task: Protractor.get(http://localhost:8080/app/) - reset url
        at thenableWebDriverProxy.schedule (/export/home/test/protractor_test_2/node_modules/selenium-webdriver/lib/webdriver.js:807:17)
        at ProtractorBrowser.executeScriptWithDescription (/export/home/test/protractor_test_2/node_modules/protractor/built/browser.js:404:28)
        at driver.controlFlow.execute.then.then.then (/export/home/test/protractor_test_2/node_modules/protractor/built/browser.js:679:25)
        at ManagedPromise.invokeCallback_ (/export/home/test/protractor_test_2/node_modules/selenium-webdriver/lib/promise.js:1376:14)
        at TaskQueue.execute_ (/export/home/test/protractor_test_2/node_modules/selenium-webdriver/lib/promise.js:3084:14)
        at TaskQueue.executeNext_ (/export/home/test/protractor_test_2/node_modules/selenium-webdriver/lib/promise.js:3067:27)
        at asyncRun (/export/home/test/protractor_test_2/node_modules/selenium-webdriver/lib/promise.js:2927:27)
        at /export/home/test/protractor_test_2/node_modules/selenium-webdriver/lib/promise.js:668:7
        at <anonymous>
        at process._tickCallback (internal/process/next_tick.js:118:7)
    From: Task: Run it("should open homepage") in control flow
        at UserContext.<anonymous> (/export/home/test/protractor_test_2/node_modules/jasminewd2/index.js:94:19)
    From asynchronous test:
    Error
        at Suite.<anonymous> (/export/home/test/protractor_test_2/todo-spec.js:2:3)
        at Object.<anonymous> (/export/home/test/protractor_test_2/todo-spec.js:1:63)
        at Module._compile (module.js:649:30)
        at Object.Module._extensions..js (module.js:660:10)
        at Module.load (module.js:561:32)
        at tryModuleLoad (module.js:501:12)

1 spec, 1 failure
Finished in 0.159 seconds

[16:51:06] I/local - Shutting down selenium standalone server.
[16:51:06] I/launcher - 0 instance(s) of WebDriver still running
[16:51:06] I/launcher - firefox #01 failed 1 test(s)
[16:51:06] I/launcher - overall: 1 failed spec(s)
[16:51:06] E/launcher - Process exited with error code 1

任何帮助,将不胜感激。


问题答案:

可以使用以下配置解决此问题。

- Protractor: v5.4.1 
- Selenium JAR driver: selenium-server-standalone-3.141.59.jar 
- geckodriver:geckodriver-v0.20.0-linux64

另外,我们需要在量角器conf文件中提供geckodrvier的路径。

geckoDriver: 'node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.20.0'

默认情况下,webdriver-
manager将下载geckodriver的最新版本为0.24.0。但是所需的geckdriver是v0.20.0,因此我手动下载了它,并将其放置在node_modules
/ protractor / node_modules / webdriver-manager / selenium /目录中。

希望这对面临类似问题的人们有所帮助。



 类似资料:
  • 我正在编写一个程序,帮助我的客户从网站下载发票PDF,第一次使用。之后,程序Hibernate一定时间,醒来时开始搜索我的客户的电子邮件(使用S22 DLL),如果他找到某个电子邮件,则从电子邮件中提取链接并使用(第二次)。但这次我得到了一个例外 浏览上下文已被丢弃 我已经尽了一切可能,但最“震惊”的是,我在谷歌上找不到任何关于这个错误的东西,也没有在硒留档上找到任何东西。 我不明白这是什么意思

  • 如何在Docker中运行基于硒的测试? 我正在尝试使用Firefox和Geckodriver在Ubuntu 18 Docker镜像下运行一些Python Selenium测试。 我的docker撰写。yml文件只是: 不幸的是,大多数测试都会失败,出现以下错误: 我能找到的少数提及此错误的搜索结果表明这是因为内存不足。我正在运行测试的服务器总内存为8GB,尽管我也在32GB的机器上进行了测试并收到

  • 这是我的全部剧本 运行时产生: 我刚刚经历了更新的一切: 壁虎河:0.29.0 我已经搜索了几个关于同一个错误的问题,但仍然完全不知道这里的问题是什么。我几乎什么都没做。这是Selenium Python的开始示例,或者至少是开始示例的开始。

  • 我正在尝试使用量角器运行一个简单的测试脚本。 环境: 这是我的量角器配置文件。 这是我的测试脚本(todo-spec.js) 这是我的node_modules/量角器/node_modules/webdriver-Manager/selenium/目录如下所示: 当我使用/path/to/gradutor conf.js运行测试时,出现了下面提到的错误。 任何帮助都将不胜感激。

  • 我没有对我的python selenium程序做任何更改,3天前它运行良好。现在,当我尝试使用它时,我得到: 浏览上下文已被丢弃无法解码来自木偶的响应 知道代码之外的原因是什么吗?(由于未进行任何更改) 我正在使用火狐和壁虎驱动程序。在我得到这些错误后,我更新了火狐、壁虎驱动程序和硒,但没有帮助。

  • 从互联网下载图片,并显示。下载图片过程中显示进度条。支持图片缩放,运用了ASI、SDWebImage。支持图片缓存。 [Code4App.com]