如何使用selenium关闭弹出窗口

如何使用selenium关闭弹出窗口,selenium,Selenium,我对Selenium非常陌生,需要能够关闭弹出窗口。我可以打开它,但我似乎无法让代码识别出有一个新窗口。我已经试过了在所有这些问题中找到的每一个代码,包括父母和句柄,我只是更困惑了。我的技能非常基础,但任何帮助都将不胜感激。打开的弹出窗口有一个关闭按钮,我有它的名称可以单击,但我确实需要最简单的方法让代码在到达关闭按钮之前识别新窗口 感谢您的帮助 将尝试在此处添加代码 owd.findElement(By.xpath(vath)).click(); //Click ATH button

我对Selenium非常陌生,需要能够关闭弹出窗口。我可以打开它,但我似乎无法让代码识别出有一个新窗口。我已经试过了在所有这些问题中找到的每一个代码,包括父母和句柄,我只是更困惑了。我的技能非常基础,但任何帮助都将不胜感激。打开的弹出窗口有一个关闭按钮,我有它的名称可以单击,但我确实需要最简单的方法让代码在到达关闭按钮之前识别新窗口

感谢您的帮助

将尝试在此处添加代码

   owd.findElement(By.xpath(vath)).click(); //Click ATH button
   System.out.println("ATH Report opened"); 

   //#1
   //owd.get(vURL2);
   //System.out.println("popout is opened"); 

   //#2
   //String parentWindowHandler = owd.getWindowHandle(); // Store your parent window
   //String subWindowHandler = null;

   //#3
   //Select handles = (Select) owd.getWindowHandles(); // get all window handles
   //Iterator<String> iterator = ((Set<String>) handles).iterator();
   //while (iterator.hasNext()){
   //    subWindowHandler = iterator.next();
   //}
   //owd.switchTo().window(subWindowHandler); // switch to popup window
                                               // perform operations on popup

   //owd.switchTo().window(parentWindowHandler);  // switch back to parent window

   //#4
   //owd.switchTo()).handle().accept();

   //#5       
   //String winHandle = owd.getWindowHandle(); //Get current window handle.
   //for(String windowsHandle : owd.getWindowHandles()) {
      //  owd.switchTo().window(windowsHandle); //Iterate to the new window handle.
   /*
   Do any action on window or just close it.
   */

  // owd.switchTo().window(winHandle); //Switch to original window.


   //#6
   owd.switchTo().window(vwindow);


   owd.findElement(By.xpath(vclose)).click(); //Click Close button
   System.out.println("Close button clicked"); 
owd.findElement(By.xpath(vath)).click()//单击ATH按钮
System.out.println(“ATH报告已打开”);
//#1
//owd.get(vURL2);
//System.out.println(“弹出窗口打开”);
//#2
//字符串parentWindowHandler=owd.getWindowHandle();//存储父窗口
//字符串子窗口处理程序=null;
//#3
//选择句柄=(选择)owd.getWindowHandles();//获取所有窗口句柄
//迭代器迭代器=((设置)句柄).Iterator();
//while(iterator.hasNext()){
//subWindowHandler=iterator.next();
//}
//owd.switchTo().window(子WindowHandler);//切换到弹出窗口
//对弹出窗口执行操作
//owd.switchTo().window(parentWindowHandler);//切换回父窗口
//#4
//owd.switchTo()).handle().accept();
//#5       
//字符串winHandle=owd.getWindowHandle()//获取当前窗口句柄。
//对于(字符串windowsHandle:owd.getWindowHandles()){
//owd.switchTo().window(windowsHandle);//迭代到新的窗口句柄。
/*
在窗口上执行任何操作或仅关闭它。
*/
//owd.switchTo().window(winHandle);//切换到原始窗口。
//#6
owd.switchTo().window(vwindow);
owd.findElement(By.xpath(vclose)).click();//单击关闭按钮
System.out.println(“单击关闭按钮”);

您需要首先切换到活动窗口/弹出警报/框架:

driver.SwitchTo().Window(<windowname>)
driver.SwitchTo().Frame("iFrmLinks")

所以,请告诉我们您尝试了什么。也许我们可以帮助您在您编写的代码中找到bug(如果有),正如Saifur所说,您需要提供代码,以便我们可以看到您尝试做什么并提供建议。请您自己动手,以便我们可以帮助您。:-)这是我的代码。报告在弹出窗口中打开,这就是它失败的地方。我尝试了几种方法s表示弹出标题的名称、URL、文件名。据我所知,它们都不起作用。我已经注释掉了每次不起作用的尝试,以便跟踪它们。owd.findElement(By.xpath(vath))。click();//click ATH button System.out.println(“ATH button clicked”);//#1//owd.get(vURL2);//System.out.println(“弹出窗口已打开”);//#2//String parentWindowHandler=owd.getWindowHandle();//存储您的父窗口//String subWindowHandler=null对不起,我不知道如何修复此屏幕上的格式。我以前从未使用过此论坛。
driver.SwitchTo().Alert();
alert.accept();