网页警报的事件监听器
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);
我需要知道网页上是否出现特定警报。我在 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);