【问题标题】:Selenium Exception when trying to Switch to alert window尝试切换到警报窗口时出现 Selenium 异常
【发布时间】:2017-03-08 09:13:10
【问题描述】:

我遇到了 Selenium 问题。当我单击提交按钮时,会显示确认警报。我需要点击“确定”按钮才能继续。

问题是我直接点击提交按钮后,出现以下异常:

模态对话框出现

它发生在我尝试获取警报窗口之前。

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 兼容。

非常感谢提前!

【问题讨论】:

  • 你不能调用elementInput.Click();而不是调用那个JavaScript吗?
  • @rene: 不幸的是,不,element.Click() 似乎不适用于 IE

标签: c# selenium internet-explorer


【解决方案1】:

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

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

【讨论】:

  • 我在使用 ExpectedConditions 时遇到了同样的异常
  • 上面的代码应该写在网页元素的点击事件之后,然后弹出窗口。不应该有任何可能应用任何可见性检查以等待页面加载等的中间操作
【解决方案2】:
driver.SwitchTo().ActiveElement();
System.Windows.Forms.SendKeys.SendWait(@"{ENTER}");

试试这个而不是切换到警报。假设警报是当时唯一的活动元素,这应该可以工作。上面的例子是用 C# 编写的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    相关资源
    最近更新 更多