我已经尝试了一段时间尝试关闭ChromeDriver服务,但我无法开发出如何解决方案。我正在使用mocha和chai进行单元测试。第一次测试通过,第二次测试因错误而失败。
我尝试查看selenium-webdrive / chrome.js模块,但无法找到关闭服务的功能。我试着寻找答案,但也无法在网上找到任何东西。也许我的创建Chrome驱动程序的方法需要重新设计。我尝试使用' selenium-webdriver / chrome.js' .getDefaultService()。isRunning()在if语句中包装服务的创建和默认服务的设置,但是第一次测试失败了。我对此感到困惑,很可能是由于缺乏知识。
在每个单元测试期间调用此被调用块
var service = new chrome.ServiceBuilder(chromePath).build();
chrome.setDefaultService(service);
driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();
这是第一次没有错误的单元测试
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');
});
这是导致其失败的第二个单元测试
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');
});
错误讯息:
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)
答案 0 :(得分:0)
尝试从CMD执行此命令:
taskkill /T /F /IM chromeserver.exe
当我使用selenium执行我的自动化脚本时,每次运行此驱动程序的新实例时(如果打开任务管理器,都可以看到)。
我使用Java编写脚本,所以我做的是在测试开始时添加这行来杀死任何活动任务:
Runtime.getRuntime().exec("taskkill /T /F /IM chromedriver.exe");