Class PulsarWebDriver
-
- All Implemented Interfaces:
-
ai.platon.pulsar.skeleton.crawl.fetch.driver.WebDriver,java.io.Closeable,java.lang.AutoCloseable,kotlin.Comparable
public final class PulsarWebDriver extends AbstractWebDriver
-
-
Field Summary
Fields Modifier and Type Field Description private final BrowserTypebrowserTypeprivate StringuserTypedUrlprivate StringnavigateUrlprivate final <Error class: unknown class>isNetworkIdleprivate Function1<WebDriver, Unit>fingerprintApplierprivate final Objectimplementationprivate final SnapshotServicesnapshotServiceprivate final ChromeTabchromeTabprivate final <Error class: unknown class>devToolsprivate final PulsarBrowserbrowserprivate final List<String>blockedURLsprivate final BrowserChatModelchatModelprivate final Map<String, Object>dataprivate final Map<String, IntRange>delayPolicyprivate final List<WebDriver>framesprivate final Stringguidprivate final Integeridprivate DurationidleTimeoutprivate BooleanignoreDOMFeaturesprivate final BooleanisActiveprivate final BooleanisCanceledprivate final BooleanisConnectableprivate final BooleanisCrashedprivate final BooleanisIdleprivate final BooleanisInitprivate final BooleanisMockedPageSourceprivate final BooleanisQuitprivate final BooleanisReadyprivate BooleanisRecoveredprivate BooleanisRecyclableprivate final BooleanisRetiredprivate BooleanisReusedprivate final BooleanisWorkingprivate InstantlastActiveTimeprivate final List<Map<String, String>>mainRequestCookiesprivate final Map<String, Object>mainRequestHeadersprivate final Map<String, Object>mainResponseHeadersprivate final IntegermainResponseStatusprivate final StringmainResponseStatusTextprivate final Stringnameprivate NavigateEntrynavigateEntryprivate final NavigateHistorynavigateHistoryprivate WebDriveropenerprivate final Set<WebDriver>outgoingPagesprivate final IntegerparentSidprivate final List<String>probabilisticBlockedURLsprivate final FloatresourceBlockProbabilityprivate final BrowserSettingssettingsprivate final Stringstatusprivate final Map<String, Duration>timeoutPolicy
-
Constructor Summary
Constructors Constructor Description PulsarWebDriver(String uniqueID, ChromeTab chromeTab, <Error class: unknown class> devTools, PulsarBrowser browser)
-
Method Summary
Modifier and Type Method Description BrowserTypegetBrowserType()final StringgetUserTypedUrl()final UnitsetUserTypedUrl(String userTypedUrl)final StringgetNavigateUrl()final UnitsetNavigateUrl(String navigateUrl)final <Error class: unknown class>isNetworkIdle()final Function1<WebDriver, Unit>getFingerprintApplier()final UnitsetFingerprintApplier(Function1<WebDriver, Unit> fingerprintApplier)ObjectgetImplementation()SnapshotServicegetSnapshotService()final ChromeTabgetChromeTab()final <Error class: unknown class>getDevTools()PulsarBrowsergetBrowser()UnitaddBlockedURLs(List<String> urlPatterns)Unitnavigate(NavigateEntry entry)Unitreload()UnitgoBack()UnitgoForward()List<Map<String, String>>getCookies()UnitdeleteCookies(String name, String url, String domain, String path)UnitclearBrowserCookies()StringselectFirstAttributeOrNull(String selector, String attrName)Objectevaluate(String expression)JsEvaluationevaluateDetail(String expression)ObjectevaluateValue(String expression)ObjectevaluateValue(String selector, String functionDeclaration)JsEvaluationevaluateValueDetail(String expression)JsEvaluationevaluateValueDetail(String selector, String functionDeclaration)StringcurrentUrl()Booleanexists(String selector)DurationwaitForSelector(String selector, Duration timeout, SuspendFunction0<Unit> action)Wait until selector for timeout at most WebDriverwaitForPage(String url, Duration timeout)WebDriverwaitForFunction(String pageFunction, Duration timeout)BooleanisVisible(String selector)BooleanisChecked(String selector)UnitmouseWheelDown(Integer count, Double deltaX, Double deltaY, Long delayMillis)UnitmouseWheelUp(Integer count, Double deltaX, Double deltaY, Long delayMillis)UnitmouseWheel(Double deltaX, Double deltaY)UnitmoveMouseTo(Double x, Double y)UnitmoveMouseTo(String selector, Integer deltaX, Integer deltaY)UnitmouseMove(Double x, Double y)UnitmouseDown(String button, Integer clickCount)TODO: use CDP to implement mouseDown: CDP → Browser Input System → Hit Testing → DOM → JS Event UnitmouseUp(String button, Integer clickCount)TODO: use CDP to implement mouseUp: CDP → Browser Input System → Hit Testing → DOM → JS Event Unithover(String selector)Unitclick(String selector, Integer count)Unitclick(String selector, String modifier)List<String>selectOption(String selector, List<String> values)Unitdblclick(String selector)Unitdblclick(String selector, String modifier)focus on an element with selector and dblclick it with modifier pressed Unitresize(Integer width, Integer height)UnitdialogAccept(String promptText)UnitdialogDismiss()Unitfocus(String selector)Unittype(String selector, String text)Unitfill(String selector, String text)Unitupload(String selector, List<String> paths)Unitpress(String selector, String key)UnitkeyDown(String key)UnitkeyUp(String key)DoublescrollTo(String selector)UnitdragAndDrop(String selector, Integer deltaX, Integer deltaY)StringouterHTML(String selector)StringariaSnapshot()StringariaSnapshot(String viewports)List<NodeRef>querySelectorAll(String selector)Queries for a list of elements using a selector. StringselectFirstTextOrNull(String selector)PointDclickablePoint(String selector)RectDboundingBox(String selector)Stringscreenshot(Boolean fullPage)This method scrolls element into view if needed, and then uses {@link screenshot.screenshot} to take a screenshot of the element. Stringscreenshot(String selector)This method scrolls element into view if needed, and then uses {@link page.screenshot} to take a screenshot of the element. Stringscreenshot(RectD rect)StringpageSource()<Error class: unknown class>nanoDOMTree()UnitbringToFront()UnitawaitTermination()NetworkResourceResponseloadResource(String url)Unitclose()Close the tab hold by this driver. final UnitdoClose()Unitpause()Unitstop()StringtoString()final UnitenableAPIAgents()-
Methods inherited from class ai.platon.pulsar.skeleton.crawl.fetch.driver.AbstractWebDriver
addInitScript, baseURI, cancel, chat, check, checkState, clickMatches, clickTextMatches, compareTo, documentURI, equals, evaluate, evaluateValue, extract, free, getBlockedURLs, getChatModel, getData, getDelayPolicy, getFrames, getGuid, getId, getIdleTimeout, getIgnoreDOMFeatures, getLastActiveTime, getMainRequestCookies, getMainRequestHeaders, getMainResponseHeaders, getMainResponseStatus, getMainResponseStatusText, getName, getNavigateEntry, getNavigateHistory, getOpener, getOutgoingPages, getParentSid, getProbabilisticBlockedURLs, getResourceBlockProbability, getSettings, getStatus, getTimeoutPolicy, hashCode, isActive, isCanceled, isConnectable, isCrashed, isIdle, isInit, isMockedPageSource, isQuit, isReady, isRecovered, isRecyclable, isRetired, isReused, isWorking, loadJsoupResource, navigate, newJsoupSession, outerHTML, randomDelayMillis, referrer, retire, scrollBy, scrollDown, scrollToBottom, scrollToMiddle, scrollToTop, scrollToViewport, scrollUp, selectAnchors, selectAttributeAll, selectAttributes, selectFirstPropertyValueOrNull, selectHyperlinks, selectImages, selectPropertyValueAll, selectTextAll, setAttribute, setAttributeAll, setIdleTimeout, setIgnoreDOMFeatures, setLastActiveTime, setNavigateEntry, setOpener, setProperty, setPropertyAll, setRecovered, setRecyclable, setReused, startWork, terminate, textContent, timeout, title, uncheck, url, waitForNavigation, waitForNavigation, waitForSelector, waitForSelector, waitUntil, waitUntil -
Methods inherited from class ai.platon.pulsar.skeleton.crawl.fetch.driver.WebDriver
captureScreenshot, captureScreenshot, captureScreenshot, delay, delay, delay, drag, isHidden, navigateTo, navigateTo, open, selectOption, waitForNavigation, waitForSelector, waitForSelector, waitForSelector, waitUntil -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Constructor Detail
-
PulsarWebDriver
PulsarWebDriver(String uniqueID, ChromeTab chromeTab, <Error class: unknown class> devTools, PulsarBrowser browser)
-
-
Method Detail
-
getBrowserType
BrowserType getBrowserType()
-
getUserTypedUrl
final String getUserTypedUrl()
-
setUserTypedUrl
final Unit setUserTypedUrl(String userTypedUrl)
-
getNavigateUrl
final String getNavigateUrl()
-
setNavigateUrl
final Unit setNavigateUrl(String navigateUrl)
-
isNetworkIdle
final <Error class: unknown class> isNetworkIdle()
-
getFingerprintApplier
final Function1<WebDriver, Unit> getFingerprintApplier()
-
setFingerprintApplier
final Unit setFingerprintApplier(Function1<WebDriver, Unit> fingerprintApplier)
-
getImplementation
Object getImplementation()
-
getSnapshotService
SnapshotService getSnapshotService()
-
getChromeTab
final ChromeTab getChromeTab()
-
getDevTools
final <Error class: unknown class> getDevTools()
-
getBrowser
PulsarBrowser getBrowser()
-
addBlockedURLs
Unit addBlockedURLs(List<String> urlPatterns)
-
getCookies
List<Map<String, String>> getCookies()
-
deleteCookies
Unit deleteCookies(String name, String url, String domain, String path)
-
clearBrowserCookies
Unit clearBrowserCookies()
-
selectFirstAttributeOrNull
String selectFirstAttributeOrNull(String selector, String attrName)
-
evaluate
Object evaluate(String expression)
-
evaluateDetail
JsEvaluation evaluateDetail(String expression)
-
evaluateValue
Object evaluateValue(String expression)
-
evaluateValue
Object evaluateValue(String selector, String functionDeclaration)
-
evaluateValueDetail
JsEvaluation evaluateValueDetail(String expression)
-
evaluateValueDetail
JsEvaluation evaluateValueDetail(String selector, String functionDeclaration)
-
currentUrl
String currentUrl()
-
exists
Boolean exists(String selector)
-
waitForSelector
Duration waitForSelector(String selector, Duration timeout, SuspendFunction0<Unit> action)
-
waitForPage
WebDriver waitForPage(String url, Duration timeout)
-
waitForFunction
WebDriver waitForFunction(String pageFunction, Duration timeout)
-
isVisible
Boolean isVisible(String selector)
-
isChecked
Boolean isChecked(String selector)
-
mouseWheelDown
Unit mouseWheelDown(Integer count, Double deltaX, Double deltaY, Long delayMillis)
-
mouseWheelUp
Unit mouseWheelUp(Integer count, Double deltaX, Double deltaY, Long delayMillis)
-
mouseWheel
Unit mouseWheel(Double deltaX, Double deltaY)
-
moveMouseTo
Unit moveMouseTo(Double x, Double y)
-
moveMouseTo
Unit moveMouseTo(String selector, Integer deltaX, Integer deltaY)
-
mouseDown
Unit mouseDown(String button, Integer clickCount)
TODO: use CDP to implement mouseDown: CDP → Browser Input System → Hit Testing → DOM → JS Event
-
mouseUp
Unit mouseUp(String button, Integer clickCount)
TODO: use CDP to implement mouseUp: CDP → Browser Input System → Hit Testing → DOM → JS Event
-
selectOption
List<String> selectOption(String selector, List<String> values)
-
dialogAccept
Unit dialogAccept(String promptText)
-
dialogDismiss
Unit dialogDismiss()
-
scrollTo
Double scrollTo(String selector)
-
dragAndDrop
Unit dragAndDrop(String selector, Integer deltaX, Integer deltaY)
-
outerHTML
String outerHTML(String selector)
-
ariaSnapshot
String ariaSnapshot()
-
ariaSnapshot
String ariaSnapshot(String viewports)
-
querySelectorAll
@Beta() List<NodeRef> querySelectorAll(String selector)
Queries for a list of elements using a selector.
Supports two selector formats:
CSS selector: "div.class", "#id", etc.
XPath selector: "//div@class='class'", etc.
Backend node ID: "backend:123", "e1233"
Frame backend node ID: "fbn:FRAMExID,123"
- Parameters:
selector- CSS selector or "backend:nodeId" format- Returns:
nodeId or null if not found
-
selectFirstTextOrNull
String selectFirstTextOrNull(String selector)
-
clickablePoint
PointD clickablePoint(String selector)
-
boundingBox
RectD boundingBox(String selector)
-
screenshot
String screenshot(Boolean fullPage)
This method scrolls element into view if needed, and then uses {@link screenshot.screenshot} to take a screenshot of the element. If the element is detached from DOM, the method throws an error.
-
screenshot
String screenshot(String selector)
This method scrolls element into view if needed, and then uses {@link page.screenshot} to take a screenshot of the element. If the element is detached from DOM, the method throws an error.
-
screenshot
String screenshot(RectD rect)
-
pageSource
String pageSource()
-
nanoDOMTree
<Error class: unknown class> nanoDOMTree()
-
bringToFront
Unit bringToFront()
-
awaitTermination
Unit awaitTermination()
-
loadResource
NetworkResourceResponse loadResource(String url)
-
toString
String toString()
-
enableAPIAgents
final Unit enableAPIAgents()
-
-
-
-