记录工作中的实现方法,如有其他需求,请自己继续实现。
/// <summary>
/// 关闭指定URL的窗口。
/// </summary>
/// <param name="url">需要关闭的URL, 可以使用部分URL进行模糊匹配</param>
public static bool CLoseWindowByURL(string url)
{
bool results = false;
Object[] handles = driver.WindowHandles.ToArray();
try
{
String currentWindow = driver.CurrentWindowHandle;
for (int i = 0; i < handles.Length; i++)
{
if (handles[i].ToString() != currentWindow)
{
driver.SwitchTo().Window(handles[i].ToString());
if (driver.Url.Contains(url))
{
driver.Close();
}
}
}
driver.SwitchTo().Window(currentWindow);
results = true;
}
catch { }
return results;
}
/// <summary>
/// 关闭除当前窗口外的所有窗口,此时需要在关闭其他窗口之后,再切换回当前窗口
/// </summary>
/// <param name="title"></param>
public static bool CloseOtherWindows()
{
bool results = false;
Object[] handles = driver.WindowHandles.ToArray();
try
{
String currentWindow = driver.CurrentWindowHandle;
for (int i = 0; i < handles.Length; i++)
{
if (handles[i].ToString() != currentWindow)
{
driver.SwitchTo().Window(handles[i].ToString());
driver.Close();
}
}
driver.SwitchTo().Window(currentWindow);
results = true;
}
catch { }
return results;
}
/// <summary>
/// 切换到最新打开的窗口
/// </summary>
/// <returns></returns>
public static bool SwitchToLastOpenWindows()
{
bool results = false;
Object[] handles = driver.WindowHandles.ToArray();
try
{
driver.SwitchTo().Window(handles[handles.Length].ToString());
}
catch { }
return results;
}