简体   繁体   English

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

[英]How to close popup window using selenium?

I'm using Selenium to login into Way2sms , Here you should look into my source code: 我正在使用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());

  }

}

But there is a problem with way2sms . 但是way2sms存在问题。 It opens some pop ups with advertisement. 它会打开一些带有广告的弹出窗口。 So please help, How to login it.. I'm unable to login it due to advertisement pop ups . 因此,请提供帮助,如何登录。。由于广告pop ups我无法登录。

surely, help would be appreciated! 当然,将不胜感激!

In order to close other windows you can switch between windows and close the unwanted ones. 为了关闭其他窗口,您可以在窗口之间切换并关闭不需要的窗口。 you can try below sample code: 您可以尝试以下示例代码:

    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;
        }

This is my approach using Firefox,I observed only one window is getting open every time so i used window-handle to close the open window and its working. 这是我使用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();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM