C# 如何在selenium中打开IE浏览器句柄?

C# 如何在selenium中打开IE浏览器句柄?,c#,selenium,selenium-webdriver,selenium-chromedriver,selenium-ide,C#,Selenium,Selenium Webdriver,Selenium Chromedriver,Selenium Ide,我已经打开了一个IE浏览器,带有一些url。 在此之后,我运行下面的代码,它将打开另一个IE浏览器。然而,在下面的代码中,它只给了我一个窗口句柄。 是否可以获得以前打开的IE浏览器句柄 IWebDriver IEdriver = new InternetExplorerDriver(); IReadOnlyCollection<String> browsers = IEdriver.WindowHandles; foreach (Str

我已经打开了一个IE浏览器,带有一些url。 在此之后,我运行下面的代码,它将打开另一个IE浏览器。然而,在下面的代码中,它只给了我一个窗口句柄。 是否可以获得以前打开的IE浏览器句柄

        IWebDriver IEdriver = new InternetExplorerDriver();
        IReadOnlyCollection<String> browsers = IEdriver.WindowHandles;
        foreach (String item in browsers)
        {
            IEdriver.SwitchTo().Window(item);
            String url = IEdriver.Url;

        }
IWebDriver IEdriver=newInternetExplorerDriver();
IReadOnlyCollection浏览器=IEdriver.WindowHandles;
foreach(浏览器中的字符串项)
{
IEdriver.SwitchTo()窗口(项目);
字符串url=IEdriver.url;
}

要小心,因为您试图做的并不是编写测试用例的健壮解决方案。如果一个测试用例导致浏览器崩溃,您将得到所有失败的测试用例

另外,我认为默认情况下不可能在以前打开的窗口上获取句柄,因为当您编写代码时

    IWebDriver IEdriver = new InternetExplorerDriver();

它调用InternetExplorerDriver类的构造函数,并打开Internet Explorer的新实例。

我想这就是您要寻找的:

String winHandleBefore = driver.getWindowHandle();
//Do whatever operations you have to do
for(String winHandle : IEdriver.getWindowHandles()){
IEdriver.switchTo().window(winHandle);
}

您可以在开始执行测试用例之前关闭所有浏览器,方法是从TaskManager中终止ie进程

        foreach (Process process in Process.GetProcessesByName("iexplore"))
        {
            process.Kill();
        }

使用Robot类,您可以导航到以前打开的IE浏览器否,您无法获得打开的IE浏览器。您可以打开一个新的IEDriver或连接到现有的IEDriver,然后打开一个新窗口。您是否可以确认您是否按照标记使用C#绑定而不是java绑定?是的,我使用C#@Buaban是的,您认为正确的方法,因此不可能已经手动打开浏览器来访问selenium