可以创建轮询方法以在浏览器实例的生命周期内检查“弹出窗口”吗?

时间:2017-01-12 10:20:29

标签: java selenium selenium-webdriver webdriver

可以创建轮询方法以在浏览器实例的生命周期内检查“弹出窗口”吗?

例如,如果我在用户旅程的任何时间出现随机弹出窗口,是否可以在出现时使用唯一ID关闭弹出窗口?

感谢您的帮助

@BeforeMethod
public void closeGiveawayPopup() throws Exception {
    try {
        List<WebElement> elements = getDriver().findElements(By.cssSelector(".close"));
        for (WebElement element : elements) {
            if (element.isDisplayed()) {
                element.click();
            }
        }
    } catch (Exception e) {
        throw (e);
    }
}

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用您的JUnit框架,使用@Before和/或@After(或相应地在TestNG @BeforeMethod和/或@AfterMethod中)完成此操作。每个步骤(JBehave)或测试运行可以检查之前和/或者在发出警报后,相应地关闭它。这样,至少在每个模块中只需要一种方法,而不是每次测试都需要。我不确定JUnit或TestNG的确切语法,我们使用JUnit,但我们不使用注释,因为我们改为使用JBehave提供的BDD。但确实有类似的@Before和@After品种。

答案 1 :(得分:0)

尝试使用FirefoxProfile,如下所示:

FirefoxProfile customProfile = new FirefoxProfile();
customProfile.setPreference("dom.disable_beforeunload", true);
FirefoxDriver driver = new FirefoxDriver(customProfile);