如何关闭Selenium中的弹出窗口?

时间:2016-09-01 07:05:29

标签: java selenium-webdriver

我正在尝试关闭一个不允许我的代码进一步执行的弹出窗口。但我无法做到这一点。有一个弹出窗口,上面写着“免费5英镑的优惠券”。没有关闭。

以下是我的代码。请检查并建议。

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() {
    }
}

1 个答案:

答案 0 :(得分:0)

你需要做这样的事情:

//pass the already created userInterface object.
BookIO.readFile(id.getText(), this);

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

根据您的需要。

修改

如果您的代码在警报出现之前运行,则可能会收到AlertNotPresentException。为了避免这种情况,你可以添加这样的延迟:

alert.dismiss();

如果警报出现,这将使Selenium等待15秒检查每100毫秒。这段代码不是我的,而是从这里获取的:Selenium how to get the alert Alert message