2016-09-01 45 views
0

私はコードをさらに実行することができないポップアップウィンドウを閉じようとしています。しかし私はそれをすることができません。閉じられていない「無料ポンド5バウチャー」と表示されるポップアップウィンドウがあります。Seleniumのポップアップウィンドウを閉じる方法は?

以下は私のコードです。確認してお勧めします。

public class Alldetails { 
    WebDriver driver; 
    public List<String> links1 = new ArrayList<String>(); 

    @BeforeTest 
    public void beforeTest() { 
     System.setProperty("webdriver.chrome.driver", "C:\\Pankaj\\chromedriver.exe"); 
     driver = new ChromeDriver(); 
     // driver = new FirefoxDriver(); 
     driver.manage().window().maximize(); 
    } 

    @Test 
    public void f() { 
     driver.get("http://www.debenhams.com/kids/t-shirts-tops/boys"); 
     driver.findElement(
       By.xpath(".//*[@id='dijit__WidgetsInTemplateMixin_0']/div/div[1]/button")) 
       .click(); 

     WebElement a = driver.findElement(By.className("products_count")); 
     String product_count = a.getText(); 
     Integer x = Integer.valueOf(product_count); 
     System.out.println(x); 
     for (int i = 1; i < (x/60) + 1; i++) { 
      driver.get("http://www.debenhams.com/kids/t-shirts-tops/boys" + "?pn=" + i); 

      List<WebElement> links = driver 
        .findElements(By.className("item_container").tagName("a")); 
      for (WebElement abcx : links) { 
       String ax = abcx.getAttribute("href"); 
       // if(!links1.contains(ax)) 
       links1.add(ax); 
      } 

      for (String b : links1) { 
       if (b.contains("/webapp/wcs/stores/servlet/prod")) 
        System.out.println(b); 
      } 
     } 
    } 

    @AfterTest 
    public void afterTest() { 
    } 
} 
+0

このコードでは、ポップアップが表示されます。そのポップアップが表示されたら?もっと黙らせてください。 –

+0

以下のコード行の後にポップアップが表示されます。 'driver.get( "http://www.debenhams.com/kids/t-shirts-tops/boys" + "pn =" + i "; ' –

+0

どのようなポップアップですか? JavaScriptアラート? HTML/CSSポップアップ?ブラウザポップアップ? –

答えて

0

あなたはこのような何かをする必要があります。

Alert alert = driver.switchTo().alert(); 
// Prints text and closes alert 
System.out.println(alert.getText()); 
alert.accept(); 

やニーズに応じて

alert.dismiss(); 

。アラートが表示される前に、あなたのコードが実行される場合は、AlertNotPresentExceptionを得ることができます

EDIT

。あなたはこのような遅延を追加することを避けるために:

WebDriverWait wait = new WebDriverWait(driver, 15, 100) 
wait.until(ExpectedConditions.alertIsPresent()) 

これは、アラートが表示された場合セレンは100ミリ秒ごとにチェックする15秒待つようになります。このスニペットは私のものではなく、ここから取得されました:Selenium how to get the alert Alert message

+0

エラーメッセージは現れていませんが、この後に印刷するURLはありません。このページのすべての商品URLを取得するためにこれをコード化しました。 –

+0

何が例外をスローしているのですか?org.openqa.selenium.NoAlertPresentException:警告がありません。 –

+0

私の回答を編集しました – Aurasphere

関連する問題