Interface PageEventHandlers

  • All Implemented Interfaces:

    
    public interface PageEventHandlers
    
                        

    The central interface for managing all event handlers triggered at various stages of a webpage's lifecycle.

    PageEventHandlers organizes events into three distinct groups:

    1.  browser.onWillLoad
    2.  load.onNormalize
    3.  load.onWillLoad
    4.  load.onWillFetch
    5.  browse.onWillLaunchBrowser
    6.  browse.onBrowserLaunched
    7.  browse.onWillFetch
    8.  browse.onWillNavigate
    9.  browse.onNavigated
    10. browse.onWillInteract
    11. browse.onWillCheckDocumentState
    12. browse.onDocumentFullyLoaded
    13. browse.onWillScroll
    14. browse.onDidScroll
    15. browse.onDocumentSteady         <-- Best for custom RPA actions
    16. browse.onWillComputeFeature
    17. browse.onFeatureComputed
    18. browse.onDidInteract
    19. browse.onWillStopTab
    20. browse.onTabStopped
    21. browse.onFetched
    22. load.onFetched
    23. load.onWillParse
    24. load.onWillParseHTMLDocument
    25. load.onHTMLDocumentParsed       <-- Best for data extraction
    26. load.onParsed
    27. load.onLoaded
    28. browser.onLoaded
    val handlers = DefaultPageEventHandlers()
    handlers.loadEventHandlers.onLoaded.addLast { page ->
        println("Loaded: ${page.url}")
    }
    val link = ListenableHyperlink(url, args = "-parse", eventHandlers = handlers)
    session.submit(link)
    val options = session.options("-parse")
    options.eventHandlers.browseEventHandlers.onDocumentSteady.addLast { page, driver ->
        driver.click("#button")
    }
    session.load(url, options)
    handlers.le.onLoaded.addLast { page -> }  // loadEventHandlers
    handlers.be.onDocumentSteady.addLast { page, driver -> }  // browseEventHandlers
    handlers.ce.onWillLoad.addLast { url -> url }  // crawlEventHandlers
    • DefaultPageEventHandlers - Standard implementation with default behaviors

    • AbstractPageEventHandlers - Base class for custom implementations