gpt4 book ai didi

node.js - 如何关闭 ChromeDriver 服务?

转载 作者:搜寻专家 更新时间:2023-10-31 22:54:29 28 4
gpt4 key购买 nike

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

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

这个调用 block 在每个单元测试期间被调用

    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)

最佳答案

尝试从 CMD 执行此命令:

taskkill /T /F /IM chromeserver.exe

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

我使用 Java 编写脚本,所以我所做的是在测试开始时添加此行以终止所有事件任务:

Runtime.getRuntime().exec("taskkill /T /F /IM chromedriver.exe");

关于node.js - 如何关闭 ChromeDriver 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35612090/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com