gpt4 book ai didi

c# - 如何在运行 InternetExplorerDriver Selenium 测试后终止 IEDriverServer.exe 控制台窗口

转载 作者:行者123 更新时间:2023-11-30 13:14:38 24 4
gpt4 key购买 nike

我正在通过 Visual Studio 单元测试运行 Selenium Webdriver,并使用 InternetExplorerDriver。这会在控制台窗口中启动 IEDriverServer.exe。

这很好用并且测试执行了。测试执行完成后,我希望 cmd.exe 窗口被杀死,这样我就不必手动清理它了。我有数以千计的测试,所以你可以想象管理它的头痛。

有没有一种优雅的方法来处理这个问题,而不必执行测试后执行和使用 kill.exe 等杀死 cmd.exe 进程?我试过 InternetExplorerDriverService.HideCommandPromptWindow = true,但它只是在隐藏模式下运行 cmd.exe 并让进程一直运行,直到它被手动终止。我也试过 InternetExplorerDriverService.SuppressInitialDiagnosticInformation 所做的只是抑制写入 cmd.exe 窗口的一些信息。

最佳答案

为了补充 awser,一些关于这个主题的信息。您可以根据需要使用 3 种主要方法:

.Close(): - This method is used to close the current open window. It closes the current open window on which driver has focus on.

.Quit(): - This method is used to destroy the instance of WebDriver. It closes all Browser Windows associated with that driver and safely ends the session. Quit() calls Dispose method to achieve this.

.Dispose(): - This method closes all Browser windows and safely ends the sessionemphasized text

在你的情况下,因为你需要终止进程,最好的选择是使用 .Quit()

有时,当您的 selenium 实例崩溃、当前和所有下一个测试开始失败时,或者甚至当您取消当前的调试测试套件时,您都无法结束进程。在这种情况下,您确实需要终止进程。

正如@Prateek 所见,其中一个正在使用 Runtime.getRuntime()。在 C# 中,更好的方法是:

foreach (var proc in Process.GetProcessesByName("IEDriverServer"))
{
proc.Kill();
}

您可以在启动 WebDriver 的构造函数中使用它(但在启动它之前!)或者,如果您使用一些库作为 NUnit,则可以创建一个全局 OneTimeSetUp。一种在所有测试前只运行一次的方法。

此外,如果您不喜欢放置代码或创建新方法来完成这项工作,您可以在 main .csproj 中配置 pre-buildpost-build 来执行你的 cmd 命令。每当您运行测试或构建项目时,它都会终止打开的 webdriver 实例。

要配置它,您需要:

  1. 在您的 .csproj 中右键单击“属性”;

  2. 导航到“构建事件”;

  3. 将命令 taskkill/f/fi "pid gt 0"/im IEDriverServer.exe 粘贴到构建前、构建后或两者中。

关于c# - 如何在运行 InternetExplorerDriver Selenium 测试后终止 IEDriverServer.exe 控制台窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36186875/

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