我正在使用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
答案 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按钮。