警告框在Firefox中不可见,但在Chrome浏览器中可以看到警告框

时间:2016-02-24 09:55:19

标签: selenium selenium-webdriver

我正在使用firefox v42和selenium 2.47.0。手动警报框在firefox浏览器中可见,但在自动化中不可见。在Chrome浏览器中也可以看到警报框。我使用了firefox配置文件,默认浏览器也都无法正常工作。

    Webdriver driver =  new FirefoxDriver();
    driver.get("");
    driver.manage().window().maximize();
    driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
    driver.findElement(By.id("username")).sendKeys("897PAN0301");
    driver.findElement(By.id("password")).sendKeys("86VPKg");
    driver.findElement(By.id("submitButton")).click();
    driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
    WebElement email = driver.findElement(By.id("emailId"));

    email.clear();
    Alert alert = driver.switchTo().alert();
    alert.accept();
    email.sendKeys("hello@gmai");
    WebElement agree = driver.findelement(By.id("agreement"))
    agree.click();
    alert.accept();//This alert is not working in automation but this alert is working manually in firefox v42 and also in chrome browser 

1 个答案:

答案 0 :(得分:0)

在Chrome中,它接受了,这是真的。 在IE和Firefox中,它显示模态框异常,因为警报框快速消失,并且在alert.accept()之后不可见。 如果您使用try catch块以及给定的代码,您可以看到屏幕将在警报框熄灭后保留在那里。 对于IE,您应该使用以下代码:

options.UnexpectedAlertBehavior = InternetExplorerUnexpectedAlertBehavior.Accept;

在浏览器初始化期间,

但是对于firefox来说它还处于开发阶段,但你可以试试这个:

((IJavaScriptExecutor)driver).ExecuteScript("window.showModalDialog = window.openWindow;");

((IJavaScriptExecutor)driver).ExecuteScript("window.confirm = function(msg) { return true; }");

在firefox声明中,以便它自动接受来自警告框的ok按钮。