[英]MessageBox with timeout in 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秒)以不阻止自动化测试?
非常欢迎任何输入(如实现该目标的其他方法)!
在这种情况下,不需要等待条件,因为默认情况下,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");
我希望这会有所帮助...一切顺利:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.