我正在尝试使用Selenium C#for Chrome获取警报的文本
但是此警报似乎与普通的JavaScript警报不同,使用以下代码将返回错误异常:
string text = driver.SwitchTo().Alert().Text;
OpenQA.Selenium.NoAlertPresentException:没有此类警报
这被视为警报吗?有办法处理吗?
答案 0 :(得分:2)
您所看到的对话框显示在操作系统级别,因此您无法在DOM中看到该对话框或使用Selenium与之交互。如果您确实需要处理它,建议您使用OS级别的自动化工具,该工具可以发送键或鼠标事件以所需的方式处理对话框。
使用Java,可以使用Java AWT包中定义的Robot类,因为它恰好用于处理与测试自动化相关的本机输入事件,并且在处理Selenium和对话框时经常被引用。但是,它在.NET世界中不存在,因此您需要在其他地方查找。快速的Google搜索为我提供了一些可能有用的信息:
Robot Framework(通过使用IronPython支持.NET)
此外,您可以使用以下方法更简单:
因此,总结一下。不,它不是您期望的普通警报,是的,您可以处理它,但它需要在硒世界之外的一些步骤。