网页警报的事件监听器

Eventlistener for an alert of a webpage

我需要知道网页上是否出现特定警报。我在 swingworker 中使用了一个无限循环,像这样:

   try{
        WebElement container = driver.findElement(By.cssSelector("#alert > a"));
        String gifAlert = container.getCssValue("background-image");
        if(gifAlert.equals(alert){
           //Do something
        }
   }catch(//Stuff){
      //Stuff
   }

是否可以使用事件监听器连续获取 WebElement 容器并连续检查它是否匹配警报,而不是使用 swingworker 和无限循环中的代码?

我不太了解 Selenium,但谷歌搜索 is possible to find the info that you may need

但是,一般策略是不要将侦听器附加到元素,而是在拦截事件后尽可能多地过滤元素。所以这两步都是实现listener

public class EventCapture implements WebDriverEventListener{

 @Override
 public void afterChangeValueOf(WebElement arg0, WebDriver arg1) {
 // TODO Auto-generated method stub

 }

 // other overriding
} 

然后注册驱动

 WebDriver driver = new FirefoxDriver();
 EventFiringWebDriver eventHandler = new EventFiringWebDriver(driver); 
 EventCapture eCapture = new EventCapture(); 
 //Registering with EventFiringWebDriver
                //Register method allows to register our implementation of WebDriverEventListner to listen to the WebDriver events
 eventHandler.register(eCapture);