用硒编写一些自动化测试后,我想要一个消息框 告诉测试人员哪个测试已经启动。
重要的是,在显示消息框时,测试不能运行。 显示消息框时应暂停它们。
我是通过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秒)不阻止自动化测试?
任何输入(如同其他方式)都非常欢迎!
答案 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");
我希望这会有所帮助......一切顺利: - )