繁体   English   中英

Selenium中具有超时的MessageBox

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM