Javascript 我可以用Selenium处理多个modalDialog吗?
我为使用ModalDialog windows的旧应用程序编写Selenium测试。我知道如何处理一个ModalDialog:Javascript 我可以用Selenium处理多个modalDialog吗?,javascript,c#,selenium,showmodaldialog,Javascript,C#,Selenium,Showmodaldialog,我为使用ModalDialog windows的旧应用程序编写Selenium测试。我知道如何处理一个ModalDialog: 在打开ModalDialog之前,我称之为js-将window pro ModalDialog更改为classic window: ((IJavaScriptExecutor)\u driver.ExecuteScript(“window.showmodaldiallog=window.open;”) 打开ModalDialog后,我切换到该窗口,我可以处理它: pub
((IJavaScriptExecutor)\u driver.ExecuteScript(“window.showmodaldiallog=window.open;”)代码>
public static void SwitchToWindow(IWebDriver _driver, string url)
{
String parentWindowHandle = _driver.CurrentWindowHandle;
IWebDriver popup = null;
var windowIterator = _driver.WindowHandles;
foreach (var windowHandle in windowIterator)
{
popup = _driver.SwitchTo().Window(windowHandle);
if (popup.Url.Contains(url))
{
break;
}
}
}
谢谢你的帮助 为了能够处理下一个窗口,您应该使用
_driver.SwitchTo().DefaultContent();
我应该把它放在哪里?现在我在第一模态中,它看起来是这样的:1。JSExecutor 2将模式更改为窗口。单击以打开模式(由于1,现在是窗口。)3。切换到新窗口----第二个模式:-(如果我再次尝试JSExecutor=第二个模式将不会打开)-如果我不尝试JSExecutor并直接打开第二个模式窗口,=超时错误我想你应该尝试在
中断之前放置一个
和else
block中的一个执行相同的错误。。在第二个窗口之前使用JSExecutor,它不会打开窗口并闪烁请求。。。没有JSEXECUTOR窗口无法处理。。。