使用Java中的HtmlUnitDriver处理警报

iRu*_*ner 6 java htmlunit-driver

我想在java中使用HTMLUnitDriver处理警报.我使用以下代码来使用firefox驱动程序处理警报,它工作正常.

Alert alert = driver.switchTo().alert();
alert.accept();
Run Code Online (Sandbox Code Playgroud)

但HTMLUnitDriver给出的错误就像

java.lang.UnsupportedOperationException: alert() 
Run Code Online (Sandbox Code Playgroud)

如何处理警报箱?

Ste*_*yts -1

在 HTMLUnitDriver 中实现警报 API 的请求几年前就已提出。这是链接:

https://code.google.com/p/selenium/issues/detail?id=1105&q=alert%28%29&colspec=ID%20Stars%20Type%20Status%20Priority%20Milestone%20Owner%20Summary

由于这似乎是一个很难破解的难题,因此您必须考虑一些技巧来规避 JavaScript 中的模式对话框(警报、确认等)。至少在他们实现警报 API 之前是这样。

阻止显示模式对话框的技巧包括向 Selenium 脚本添加额外的 JavaScript。例如,更改回调函数以避免出现警报框。

另外,请注意,无法使用 JavaScript 本身关闭/取消/确认模式对话框。这就是为什么你应该阻止它们出现的原因。这是出于安全原因。

在实现警报 API 之前,这是使用 HtmlUnitDriver 处理它的唯一方法。