查找Selenium WebDriver启动的浏览器进程的PID

在C#中,我启动了一个浏览器进行测试,我想获取PID,以便在Winforms应用程序中可以杀死启动的所有剩余Ghost进程。

driver = new FirefoxDriver();

如何获取PID?

回答:

看起来更像是C#问题,而不是特定于Selenium。

我的逻辑是,firefox使用Process.GetProcessesByName方法获取具有名称的所有进程PID

,然后启动FirefoxDriver,然后再次获取进程的PID,比较它们以获取刚刚启动的PID。在这种情况下,特定驱动程序已启动多少个进程无关紧要(例如,Chrome启动多个进程,Firefox仅启动一个进程)。

using System.Collections.Generic;

using System.Diagnostics;

using System.Linq;

using Microsoft.VisualStudio.TestTools.UnitTesting;

using OpenQA.Selenium.Firefox;

namespace TestProcess {

[TestClass]

public class UnitTest1 {

[TestMethod]

public void TestMethod1() {

IEnumerable<int> pidsBefore = Process.GetProcessesByName("firefox").Select(p => p.Id);

FirefoxDriver driver = new FirefoxDriver();

IEnumerable<int> pidsAfter = Process.GetProcessesByName("firefox").Select(p => p.Id);

IEnumerable<int> newFirefoxPids = pidsAfter.Except(pidsBefore);

// do some stuff with PID if you want to kill them, do the following

foreach (int pid in newFirefoxPids) {

Process.GetProcessById(pid).Kill();

}

}

}

}

以上是 查找Selenium WebDriver启动的浏览器进程的PID 的全部内容, 来源链接: utcz.com/qa/435195.html

回到顶部