我正在尝试从c#代码中关闭Microsoft Edge上所有已打开的选项卡,但无法使其正常运行。 尝试:
Process[] edgeProcessList = Process.GetProcessesByName("MicrosoftEdgeCP");
foreach (Process theprocess in edgeProcessList)
{
if (theprocess.MainWindowHandle != IntPtr.Zero)
{
SetForegroundWindow(theprocess.MainWindowHandle);
SendKeys.SendWait("^{W}");
Thread.Sleep(3000);
}
}
以及:
foreach(Process proc in edgeProcessList.ToList())
{
proc.Kill();
}
但是没有工作。这些过程确实会被杀死但新的过程会立刻重新出现。
在调试之后显示:
Process[] newProcessList = Process.GetProcessesByName("MicrosoftEdgeCP");
以及任务管理器。 有没有办法做到这一点?
答案 0 :(得分:0)
想出来并编写了一些我开始工作的代码:
var tabs = driver.WindowHandles;
var x = Enumerable.Range(1, tabs.Count - 1).Reverse();
foreach(var i in Enumerable.Range(1, tabs.Count-1).Reverse())
{
Console.WriteLine(i);
driver.SwitchTo().Window(tabs[i]);
driver.Close();
driver.SwitchTo().Window(tabs[i - 1]);
}
答案 1 :(得分:0)
杀死Edge浏览器实例的代码
Process[] Edge = Process.GetProcessesByName("MicrosoftEdge");
foreach (Process Item in Edge)
{
try
{
Item.Kill();
Item.WaitForExit(3000);
}
catch (Exception)
{
}
}
答案 2 :(得分:0)
请参见WebDriver
这似乎是不完整答案中“驱动程序”所引用的内容。
答案 3 :(得分:0)
Process[] Edge = Process.GetProcessesByName("msedge");
foreach (Process Item in Edge)
{
try
{
Item.Kill();
Item.WaitForExit(30000);
}
catch (Exception)
{
}
}