Reputation: 21
Basic I am using maven with POM and I am unable to switch focus back on parent window after I perform a operation in second window and click send window close automatically and after that my Firefox driver does not work .
**I used three options mentioned below which are not working **
public void switchWindow() {
String handle = driver.getWindowHandle();
Set<String> set = driver.getWindowHandles();
set.remove(handle);
if (set.size() >= 1) {
driver.switchTo().window((String) set.toArray()[0]);
}
public WebDriver switchWindowByTitle(String title)
{
WebDriver popup = null;
Set<String> windowIterator = driver.getWindowHandles();
System.err.println("No of windows : " + windowIterator.size());
for (String s : windowIterator) {
String windowHandle = s;
popup = driver.switchTo().window(windowHandle);
System.out.println("Window Title : " + popup.getTitle());
System.out.println("Window Url : " + popup.getCurrentUrl());
if (popup.getTitle().equals(title) ){
System.out.println("Selected Window Title : " + popup.getTitle());
return popup;
}
}
System.out.println("Window Title :" + popup.getTitle());
System.out.println();
return popup;
public WebDriver switchWindowByTitle(String title)
{
String currentWindow = driver.getWindowHandle();
List<String> availableWindows = new ArrayList<String>(driver.getWindowHandles());
for(String w : availableWindows)
{
if (w != currentWindow)
{
driver.switchTo().window(w);
if (driver.getTitle().equalsIgnoreCase(title))
return true;
else
{
driver.switchTo().window(currentWindow);
}
}
}
return false;
}
Upvotes: 2
Views: 11871
Reputation: 1
I am using following in C# It also supports multiple tabs opened. Thread.Sleep is there just for test stability
public static bool CloseCurrentTab(this IWebDriver driver)
{
var windowHandles = driver.WindowHandles;
if (windowHandles.Count > 1)
{
driver.Close();
driver.SwitchTo().Window(windowHandles[windowHandles.Count - 2]);
Thread.Sleep(500);
return true;
}
return false;
}
Upvotes: 0
Reputation: 50809
You need to get the parent window handle before opening the new window and swith back to it after you finished with the new window.
// before opening the new window
String parentWindow = driver.getWindowHandle();
// after the new window was closed
driver.switchTo().window(parentWindow);
Upvotes: 3