0

在用 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 秒)不阻止自动化测试?

非常欢迎任何输入(如实现该目标的其他方法)!

4

1 回答 1

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");

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

于 2012-12-14T10:59:42.137 回答