我有一个已经打开的IE浏览器,有一些网址。 在此之后,我运行下面的代码将打开另一个IE浏览器。但它在下面的代码中只给了我一个窗口句柄。 是否有可能获得以前打开的IE浏览器处理?
IWebDriver IEdriver = new InternetExplorerDriver();
IReadOnlyCollection<String> browsers = IEdriver.WindowHandles;
foreach (String item in browsers)
{
IEdriver.SwitchTo().Window(item);
String url = IEdriver.Url;
}
答案 0 :(得分:1)
我认为这是你正在寻找的东西:
String winHandleBefore = driver.getWindowHandle();
//Do whatever operations you have to do
for(String winHandle : IEdriver.getWindowHandles()){
IEdriver.switchTo().window(winHandle);
}
答案 1 :(得分:0)
小心你正在尝试做的事情,并不是编写测试用例的强大解决方案。如果一个测试用例导致浏览器崩溃,则会导致所有测试用例失败。
此外,我认为默认情况下应该可以在以前打开的窗口上获取句柄,因为当你编写代码时
IWebDriver IEdriver = new InternetExplorerDriver();
它调用InternetExplorerDriver类的构造函数并打开Internet Explorer的新实例。
答案 2 :(得分:0)
您可以通过从任务管理器中终止ie进程来关闭所有浏览器,然后再开始执行测试用例。
foreach (Process process in Process.GetProcessesByName("iexplore"))
{
process.Kill();
}