在Selenium中具有超时的MessageBox

时间:2012-12-14 09:49:45

标签: java javascript browser selenium

用硒编写一些自动化测试后,我想要一个消息框 告诉测试人员哪个测试已经启动。

重要的是,在显示消息框时,测试不能运行。 显示消息框时应暂停它们。

我是通过JavaScript

完成的
Object result = ((JavascriptExecutor)TestRunner.driver).executeScript("alert('" + text + "');");

现在我希望这个消息框显示几秒钟。我试过了:

TestRunner.driver.manage().wait(10);

并且

Selenium selenium = new WebDriverBackedSelenium(TestRunner.driver,    TestRunner.driver.getCurrentUrl());
selenium.start();
selenium.getConfirmation();

WebDriverWait waitForOkay = new WebDriverWait(TestRunner.driver, 10);
waitForOkay.wait(10);

但警报总是立即消失,就像有一些

alert.accept();

有没有办法让消息框点击“确定”或 一些超时(例如10秒)不阻止自动化测试?

任何输入(如同其他方式)都非常欢迎!

1 个答案:

答案 0 :(得分:0)

在这种情况下不需要等待条件,因为默认情况下,JavaScript警告框....阻止执行直到您单击“确定”按钮。

我尝试使用示例代码(C#代码段),但它正在运行。

IWebDriver driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl("http://www.google.com");
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(4));
Console.WriteLine("Entering the Sync Call");
js.ExecuteScript("alert('"+ Error+"');");
Console.WriteLine("Exiting the Sync Call");

我希望这会有所帮助......一切顺利: - )