Reputation: 157
I m using Selenium to test my web application.
Here I want to click the enter button to select the values in list box. I have tried maximum all methods using javascript, sendkeys and Robot also. Everything is working fine in normal window, but when the popup appeared that time not working for this.
Has anyone faced this issue?
Kindly help me.
Thanks for advance.
Upvotes: 4
Views: 3373
Reputation: 4739
Try this code to switch the windows:
WebDriver driver = new FirefoxDriver();
driver.get("http://demo.guru99.com/popup.php");
driver.manage().window().maximize();
driver.findElement(By.xpath("html/body/p/a")).click();
// return the parent window name as a String
String parentWindow=driver.getWindowHandle();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// Pass a window handle to the other window
for(String childWindow: driver.getWindowHandles())
{
if(!childWindow.equals(parentWindow)){
System.out.println("child");
//switch to child window
driver.switchTo().window(childWindow);
//find an element and print text of it
WebElement textLabel=driver.findElement(By.xpath("html/body/div[1]/h2"));
System.out.println(" text: "+textLabel.getText());
driver.close();
}
}
System.out.println("Come to parent window");
/switch to Parent window
driver.switchTo().window(parentWindow);
Upvotes: 1
Reputation: 157
Try the below code:
driver.switchTo().activeElement();
it's also working fine for me....
Upvotes: 0
Reputation: 17553
You need to switch the pop-up first and then you can perfrom action
Alert alertOK = driver.switchTo().alert();
alertOK.accept();
If the pop-up is not confirmation box then you need to switch and perform click operation
driver.switchTo().alert();
element.click();
OR If it is application pop-up then you can try below code
To switch to a popup window, you need to use getWindowHandles()
and iterate through them.
In your code you are using getWindowHandle()
which will give you the parent window itself.
String parentWindowHandler = driver.getWindowHandle(); // Store your parent window
String subWindowHandler = null;
Set<String> handles = driver.getWindowHandles(); // get all window handles
Iterator<String> iterator = handles.iterator();
while (iterator.hasNext()){
subWindowHandler = iterator.next();
}
driver.switchTo().window(subWindowHandler); // switch to popup window
// Now you are in the popup window, perform necessary actions here
driver.switchTo().window(parentWindowHandler); // switch back to parent window
Hope it will help you :)
Upvotes: 4