如何以编程方式关闭Microsoft Edge上的选项卡

时间:2018-03-24 20:52:00

标签: c# tabs microsoft-edge

我正在尝试从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");

以及任务管理器。 有没有办法做到这一点?

4 个答案:

答案 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)

进程名为“msedge”

Process[] Edge = Process.GetProcessesByName("msedge");
            foreach (Process Item in Edge)
            {
                try
                {
                    Item.Kill();
                    Item.WaitForExit(30000);
                }
                catch (Exception)
                {

                }
            }