如何在运行自动化脚本后杀死驱动程序

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

我正在尝试使用 java-Selenium TestNG 运行自动化脚本。 为了打开浏览器,我调用了 chrome 驱动程序。即使停止脚本后,chrome 驱动程序仍在任务管理器的后台进程中运行。 例如,如果我执行脚本 20 次,那么 chrome 驱动程序将在任务管理器中运行 20 次。由于这个问题,我没有遇到任何问题。但仍然想知道我是否应该在脚本中添加任何内容来停止这些驱动程序? 。以后会不会有什么问题?

selenium selenium-webdriver webdriver selenium-chromedriver
6个回答
4
投票

您可以杀死在@AfterSuite(Java中)中写入的未关闭进程

如果您在 Windows 上启动测试:

//kill chromedriver
Runtime.getRuntime().exec("taskkill /im chromedriver.exe /f");

如果您在 Linux 上启动测试:

String[] cmd = new String[]{"/bin/sh", "killchrome.sh"};
Process pr = Runtime.getRuntime().exec(cmd);

并且在killchrome.sh(在此示例中文件位于主项目目录中)中,您应该编写

kill $(ps aux | grep 'chromedrive[r]' | awk '{print $2}')

2
投票
WebDriver driver = new ChromeDriver();
try{
  ==========      ==========
    YOUR CODE GOES HERE
  ==========      ==========

} catch (Exception e) {
  ==========      ==========
    YOUR CODE GOES HERE
  ==========      ==========
} finally{
  driver.quit();
}

在finally 块中关闭实例始终是一个好习惯。


2
投票

从命令行终止多个进程您需要做的第一件事是打开命令提示符,然后使用具有以下语法的taskkill命令:

taskkill /F /IM <processname.exe> /T

这些参数将强制终止与您指定的可执行文件名称匹配的任何进程。例如,要终止所有 iexplore.exe 进程,我们可以使用:

[![taskkill /F /IM iexplore.exe][1]][1]

enter image description here


0
投票

用途:

driver.quit();

这将杀死关闭驱动程序并杀死实例。


0
投票

这个脚本

taskkill /FI "IMAGENAME eq geckodriver.exe" /F
可以为你杀死geckodriver。如果你想杀死 chromedriver,只需将名称替换为新名称即可


0
投票

对于我使用 macos/linux 来说,杀死那些正在运行的后台的命令是

pkill -f chromedriver
pkill -f webdriver
© www.soinside.com 2019 - 2024. All rights reserved.