如何使用硒关闭弹出窗口?

时间:2015-02-11 06:21:42

标签: java selenium selenium-webdriver popup selenium-ide

我使用Selenium登录Way2sms,在这里您应该查看我的源代码:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class Main {

  public static void main(String[] args) throws InterruptedException{

     WebDriver driver=new HtmlUnitDriver();

     driver.get("http://site25.way2sms.com/content/index.html");

     driver.findElement(By.name("username")).sendKeys("9982XXXX");
     driver.findElement(By.name("password")).sendKeys("XXXXXXXX");

     driver.findElement(By.id("loginBTN")).click();

     System.out.println(driver.getPageSource());

  }

}

但是way2sms存在问题。它会打开一些带广告的弹出窗口。所以请帮忙,如何登录..由于广告pop ups,我无法登录。

当然,帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

为了关闭其他窗口,您可以在窗口之间切换并关闭不需要的窗口。你可以尝试下面的示例代码:

    getWebElement(webDriver, How.ID, getValueFromKey("helpLinkID"))
                .click();
        Set s = webDriver.getWindowHandles();
        Iterator ite = s.iterator();
        String previousWindow = "";
        while (ite.hasNext()) {
            String popupHandle = ite.next().toString();
            webDriver.switchTo().window(popupHandle);
            String currentURL = webDriver.getCurrentUrl();
            if ((currentURL.contains("/webhelp/Login.htm"))) {
                webDriver.close();

                webDriver.switchTo().window(previousWindow);

            }
            previousWindow = popupHandle;
        }

答案 1 :(得分:0)

这是我使用Firefox的方法,我观察到每次只有一个窗口打开,所以我使用窗口句柄来关闭打开的窗口及其工作。

WebDriver driver=new FirefoxDriver();
String Parentwindow = driver.getWindowHandle( );
     driver.get("http://site25.way2sms.com/content/index.html");
driver.manage().window().setPosition(new Point(-2000, 0));
     for ( String currentwindow : driver.getWindowHandles())  
          driver.switchTo( ).window(currentwindow);  
               {  

                 driver.close( );  
               }  

               driver.switchTo().window(Parentwindow);  
     driver.findElement(By.name("username")).sendKeys("9982XXXX");
     driver.findElement(By.name("password")).sendKeys("XXXXXXXX");

     driver.findElement(By.id("loginBTN")).click();