Eventlistener для оповещения о веб-странице - PullRequest
0 голосов
/ 24 октября 2019

Мне нужно знать, появляется ли конкретное предупреждение на веб-странице. Я использую бесконечный цикл внутри 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
   }

Возможно ли использовать EventListener, который непрерывно получает контейнер WebElement и постоянно проверяет, соответствует ли он предупреждению, вместо использования SwingWorker и этого кодавнутри бесконечного цикла?

1 Ответ

1 голос
/ 25 октября 2019

Я не очень хорошо знаю Selenium, но, гуглив вокруг , можно найти информацию, которая может вам понадобиться

Однако общая стратегия заключается в том, чтобы не прикреплять слушателя к какому-либо элементу фильтра. элемент, когда событие перехвачено. Таким образом, два шага реализуют слушателя

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); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...