首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何关闭ChromeDriver服务?

如何关闭ChromeDriver服务?
EN

Stack Overflow用户
提问于 2016-02-25 04:12:32
回答 1查看 2.2K关注 0票数 6

我已经尝试了一段时间来尝试关闭ChromeDriver服务,但我无法开发出一个解决方案。我正在使用mocha和chai进行单元测试。由于错误,第一个测试通过,第二个测试失败。

我尝试查看selenium-webdrive/chrome.js模块,但找不到关闭该服务的函数。我试着搜索答案,但在网上也找不到任何东西。也许我创建chrome驱动程序的方法需要修改一下。我尝试使用'selenium-webdriver/chrome.js'.getDefaultService().isRunning()将服务的创建和默认服务的设置包装在一个if语句中,但第一次测试失败。我对此感到困惑,这很可能是因为缺乏知识。

在每次单元测试期间都会调用这个被调用的块

代码语言:javascript
复制
    var service = new chrome.ServiceBuilder(chromePath).build();
    chrome.setDefaultService(service);

    driver = new webdriver.Builder()
        .withCapabilities(webdriver.Capabilities.chrome())
        .build();

这是第一个无错误通过的单元测试。

代码语言:javascript
复制
it('Should pass if the Driver is set to equal the Chrome driver by using chrome', function()
{
        var chromeDriver = Driver( { browserName: 'chrome' } );
        expect(chromeDriver.getCapabilities().browserName).to.equal('Google Chrome');
});

这是导致它失败的第二个单元测试。

代码语言:javascript
复制
it('Should pass if the Driver is set to equal the Chrome driver by using google chrome', function()
{
        var chromeDriver = Driver( { browserName: 'google chrome' } );
        expect(chromeDriver.getCapabilities().browserName).to.equal('Google Chrome');
});

错误消息:

代码语言:javascript
复制
Error: The previously configured ChromeDriver service is still running. You must shut it down before you may adjust its configuration.
  at Error (native)
  at Object.setDefaultService (C:\Users\charles.sexton\WebstormProjects\node_modules\selenium-webdriver\chrome.js:346:11)
  at module.exports (C:\Users\charles.sexton\WebstormProjects\JS-Selenium-Toolkit\src\OrasiDriver.js:90:16)
  at Context.<anonymous> (C:\Users\charles.sexton\WebstormProjects\JS-Selenium-Toolkit\test\test.js:28:32)
  at callFn (C:\Users\charles.sexton\WebstormProjects\node_modules\mocha\lib\runnable.js:315:21)
  at Test.Runnable.run (C:\Users\charles.sexton\WebstormProjects\node_modules\mocha\lib\runnable.js:308:7)
  at Runner.runTest (C:\Users\charles.sexton\WebstormProjects\node_modules\mocha\lib\runner.js:422:10)
  at C:\Users\charles.sexton\WebstormProjects\node_modules\mocha\lib\runner.js:533:12
  at next (C:\Users\charles.sexton\WebstormProjects\node_modules\mocha\lib\runner.js:342:14)
  at C:\Users\charles.sexton\WebstormProjects\node_modules\mocha\lib\runner.js:352:7
  at next (C:\Users\charles.sexton\WebstormProjects\node_modules\mocha\lib\runner.js:284:14)
  at Immediate._onImmediate (C:\Users\charles.sexton\WebstormProjects\node_modules\mocha\lib\runner.js:320:5)
EN

回答 1

Stack Overflow用户

发布于 2016-02-25 09:36:24

尝试从CMD执行此命令:

代码语言:javascript
复制
taskkill /T /F /IM chromeserver.exe

当我使用selenium执行我的自动化脚本时,每次都有一个新的驱动程序实例在运行(如果您打开您的任务管理器,就可以看到它)。

我使用Java编写脚本,所以我要做的就是在测试开始时添加下面这行代码来终止所有活动任务:

代码语言:javascript
复制
Runtime.getRuntime().exec("taskkill /T /F /IM chromedriver.exe");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35612090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档