尝试切换到警报窗口

时间:2017-03-08 09:13:10

标签: c# selenium internet-explorer

我有Selenium问题。当我点击提交按钮时,会显示确认提醒。我需要在" OK"按钮继续。

问题是,在我提交按钮后,我有以下例外:

  

出现模态对话框

在我尝试获取警报窗口之前发生了这种情况。

js.ExecuteScript("arguments[0].click();", elementInput); // This line throw the exception
IAlert confirmationAlert = _webDriver.SwitchTo().Alert();
confirmationAlert.Accept();

堆栈跟踪:

   at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 1341
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 1112
   at OpenQA.Selenium.Remote.RemoteWebDriver.ExecuteScriptCommand(String script, String commandName, Object[] args) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 1196
   at OpenQA.Selenium.Remote.RemoteWebDriver.ExecuteScript(String script, Object[] args) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 529
   at Kenji.Program.UploadFile(String GTSID, String filePath) in C:\Users\UsrName\Documents\Visual Studio 2015\Projects\Kenji\Kenji\Program.cs:line 213

我使用Internet Explorer 17.713.10586.0和Selenium Dot Net 3.2.0。该应用程序仅与IE兼容。

非常感谢提前!

2 个答案:

答案 0 :(得分:0)

您可以尝试使用selenium类警报接受警报,以接受弹出窗口而不是使用javascript

WebDriverWait wait = new WebDriverWait(driver, 10);
Alert alert = wait.until(ExpectedConditions.alertIsPresent());
alert.accept();

答案 1 :(得分:0)

driver.SwitchTo().ActiveElement();
System.Windows.Forms.SendKeys.SendWait(@"{ENTER}");

尝试此操作而不是切换到警报。假设警报是当时唯一的活动元素,这应该可行。上面的例子是C#。