![]() |
GPAL - Generally Positive Automation Library v1.0
GPAL The Fluent Automation LIbrary
|
Classes | |
| class | BoxModelResponse |
| class | Browser |
| Browser object that contains the fluent methods to create your Browser workflow. Instatiated using GPAL.Browser. More... | |
| class | BrowserHelper |
| class | BrowserSettings |
| class | CdpResultExtractors |
| class | ChromePatcher |
Provides anti-detection binary patching for chromedriver.exe. Strips Selenium/CDP automation fingerprints (e.g. injected window.cdc_* variables) and subtly mutates other known fingerprintable strings so automated browser sessions are harder for sites to distinguish from manual ones. | |
| class | ChromeProfileManager |
| class | DesktopGuard |
| The way back when the process that took the screen is not there to give it back. Everything else GPAL does about a switched screen runs inside the process that switched it, and a process killed outright runs none of it: the screen stays on the hidden desktop and nothing left alive knows to move it. So a second process is started before the switch and outlives that. It waits for the process that took the screen to end, then switches to Default. Switching to the desktop already on the screen does nothing, so it costs nothing when the peek ended properly. There is no manual way out to go with it. A hidden desktop has no Explorer, so there is nothing there to type a path into: Ctrl+Alt+Del returns Winlogon to the desktop it was pressed on, which is the hidden one, and signing out works only at the cost of the session. This guard and the escape window GPAL puts on the desktop itself are the two ways back, and both have to be in place before the switch. | |
| class | DevToolsCommandBuilder |
| class | DriverHelper |
| class | EdgePatcher |
Provides anti-detection binary patching for msedgedriver.exe. Strips Selenium/CDP automation fingerprints (e.g. injected window.cdc_* variables) and subtly mutates other known fingerprintable strings so automated browser sessions are harder for sites to distinguish from manual ones. Edge shares the Chromium/chromedriver codebase, so the same fingerprints and patch strategy as ChromePatcher apply here. | |
| class | ElementAssistant |
| Browser ElementAssistant object with fluent methods to help you manipulate WebElements in Callback EventHandlers. Instantiated with GPAL.ElementAssistant(). More... | |
| class | ElementHelper |
| class | ElementSettings |
| class | EnumExtensions |
| class | FirefoxProfileManager |
| class | GPALElementExtension |
| class | GPALHiddenDesktop |
| One hidden desktop, handed back by the browser running on it. It holds a name and nothing else: the desktop itself is kept by HiddenDesktop, so this stays correct even if the browser is closed and another one takes the same desktop. | |
| class | GPALHiddenDesktops |
| Every hidden desktop this process has made, and the screen operations that move between them. This is what GPAL.HiddenDesktop hands back, and it holds no state of its own. | |
| class | GPALUrl |
| Represents a URL with optional pre-navigation storage cleanup / inspection actions. Uses fluent builder pattern with fail-forward design (logs issues instead of throwing exceptions). Supports implicit conversion to/from string (with warning on first implicit use). More... | |
| class | GPALYouTube |
| Fluent YouTube video uploader. Entry point: GPAL.YouTube. Upload phase: WithCredentials -> WithTitle -> ... -> Upload(file). Schedule phase: WithVideos(results) -> WaitForProcessing(seconds) -> ScheduleAt(PremiereTime). ScheduleAt runs in the background; the calling thread is not blocked. More... | |
| class | HiddenDesktop |
| The Win32 desktop objects browsers run on when a workflow asks for a hidden one. A desktop object has its own window set and its own input queue, so a browser there is a real window with real rendering that nobody can see and that cannot take focus from the person using the machine. This is not a Windows virtual desktop, the Win+Tab kind. Those group windows within the one desktop and isolate nothing: a browser opened there still steals focus and a hardware click still lands wherever focus is. Desktops are kept by name. Browsers naming the same one share it, browsers naming different ones get one each, and that is the whole of the difference between three browsers on one desktop and three browsers on three. Peek walks whichever of them exist. | |
| interface | IAllowAfterAnySelector |
| interface | IAllowAfterAnySelectorExceptWithAll |
| interface | IAllowAfterImageSelector |
| interface | IAllowAfterWaitFor |
| interface | IAllowAfterWaitForAndSizeControl |
| interface | IAllowAllBrowserAndAllSelector |
| interface | IAllowAnySelector |
| interface | IAllowBrowserAction |
| interface | IAllowBrowserActionOrAnySelector |
| interface | IAllowBrowserSettings |
| interface | IAllowBrowserSettingsOrGoTo |
| Allow Browser Settings, Goto, WaitOnDocumentReady. More... | |
| interface | IAllowBrowserSettingsOrSelectorAction |
| interface | IAllowBrowserType |
| interface | IAllowBrowserTypeOrGoto |
| interface | IAllowCallBack |
| interface | IAllowCallTemplate |
| What a workflow may say once .WithCallFilter has said which call it is after. Taking a template only means something when there is something to match, so this is the only place it is offered. More... | |
| interface | IAllowCasting |
| interface | IAllowClicks |
| interface | IAllowClose |
| interface | IAllowDataOperations |
| interface | IAllowDebugPort |
| interface | IAllowDeployWebApp |
| interface | IAllowDialogHandling |
| interface | IAllowDragAndDrop |
| interface | IAllowElementActions |
| interface | IAllowElementSetting |
| interface | IAllowElementSettingsAndActions |
| interface | IAllowExecuteJavaScript |
| interface | IAllowExistingBrowser |
| interface | IAllowFetch |
| interface | IAllowFileActions |
| interface | IAllowFillInFrom |
| interface | IAllowFocus |
| interface | IAllowFormatRange |
| interface | IAllowFormatSettings |
| interface | IAllowGet |
| interface | IAllowGetElements |
| interface | IAllowGetGrid |
| interface | IAllowGetGridAndFillInFrom |
| interface | IAllowGetWindowRectangle |
| interface | IAllowGoogleSheetsSaveTo |
| interface | IAllowGoTo |
| interface | IAllowGoToOrGet |
| interface | IAllowGPALUrlForUrl |
| Starting interface - only allows setting the target URL. More... | |
| interface | IAllowGPALUrlStorageData |
| Allow setting the storage data parameter for 'set' operations. More... | |
| interface | IAllowGPALUrlStorageItemConfig |
| Interface after deleting a specific item - allows optional path/domain. More... | |
| interface | IAllowGPALUrlStorageType |
| Interface after URL is set - allows selecting storage type. More... | |
| interface | IAllowGraphicSettings |
| interface | IAllowHideElement |
| interface | IAllowHover |
| interface | IAllowInDataOperations |
| interface | IAllowInjectScript |
| interface | IAllowInSelector |
| interface | IAllowInsertSettings |
| interface | IAllowMoveTo |
| interface | IAllowNetworkIdleSettings |
| interface | IAllowNewTabOrWindow |
| interface | IAllowPageControl |
| interface | IAllowPersistentCallBack |
| interface | IAllowPrintDomElement |
| interface | IAllowPuppeteerActions |
| interface | IAllowPuppeteerAttribute |
| interface | IAllowPuppeteerCheckNetworkIdleOrExecution |
| interface | IAllowPuppeteerCommunicator |
| interface | IAllowPuppeteerDragAndDrop |
| interface | IAllowPuppeteerEndpoint |
| interface | IAllowPuppeteerEndpointDetails |
| interface | IAllowPuppeteerExecution |
| interface | IAllowPuppeteerInputText |
| interface | IAllowPuppeteerParameters |
| interface | IAllowPuppeteerParametersOrExecution |
| interface | IAllowPuppeteerRangeValue |
| interface | IAllowPuppeteerScrollElement |
| interface | IAllowPuppeteerSelectOptions |
| interface | IAllowPuppeteerStorageOptions |
| interface | IAllowPuppeteerWorkflow |
| interface | IAllowRun |
| interface | IAllowScheduledWorkflow |
| interface | IAllowScheduledWorkflowExecution |
| interface | IAllowScreenshot |
| interface | IAllowScriptOperations |
| interface | IAllowScrolling |
| interface | IAllowSelectorAction |
| interface | IAllowSelectorInFrameBrowserSettingsOrGoto |
| interface | IAllowSetAttributeValue |
| interface | IAllowSetValueFromElement |
| interface | IAllowSheetOperations |
| interface | IAllowSheetSelection |
| interface | IAllowSiteMapOperations |
| interface | IAllowSizeControl |
| interface | IAllowSpreadsheetSelection |
| interface | IAllowStartWorkflow |
| interface | IAllowStorageAction |
| interface | IAllowStorageData |
| interface | IAllowStorageOptions |
| interface | IAllowStorageOutData |
| interface | IAllowTabActions |
| interface | IAllowToGPALObject< TResult > |
| interface | IAllowTriggerSettings |
| interface | IAllowWaitFor |
| interface | IAllowWaitForWindow |
| interface | IAllowWindowActions |
| interface | IAllowWindowScrollBy |
| interface | IAllowWithAllThatMatch |
| interface | IAllowWithAttribute |
| interface | IAllowWithAutomationEngine |
| interface | IAllowWithData |
| interface | IAllowWithGridToSave |
| interface | IAllowWithHardware |
| interface | IAllowWithHeader |
| interface | IAllowWithHeaderOrFileActions |
| interface | IAllowWithInfiniteScroll |
| interface | IAllowWithJavaScript |
| interface | IAllowWithNextPageButton |
| interface | IAllowWithNextPageButtonOrGetGrid |
| interface | IAllowWithPages |
| interface | IAllowWithPagesAndFetch |
| interface | IAllowWithPagesAndGridActions |
| interface | IAllowWithPersistentSelector |
| interface | IAllowWithSelector |
| interface | IAllowWithTokensFrom |
| interface | IAllowWithTriggerFunction |
| interface | IAllowWorkflow |
| interface | IAllowWorkflowExecution |
| interface | IBrowser |
| interface | IGoogleSheets |
| interface | IGPALUrl |
| Public interface exposed to consumers. More... | |
| interface | IHiddenDesktop |
| One Win32 desktop object a browser is running on. Reached from the browser that is on it, so a workflow that has the browser never has to remember what the desktop was called. More... | |
| interface | IHiddenDesktops |
| Every hidden desktop this process has made, and the screen itself. Peek and Return move the screen, which is not something one desktop owns, so they live here rather than on a single desktop. More... | |
| interface | IImageHelper |
| interface | IMagicHelper |
| interface | IPuppeteerClient |
| class | MagicHelper |
| class | Model |
| class | Native |
| struct | PremiereTime |
| Represents a premiere schedule time. Presets (In5Minutes, In1Hour, etc.) store a relative offset and resolve to UtcNow + offset at the moment Resolve() is called, so the premiere time is set relative to when each video finishes processing, not when the chain was built. More... | |
| class | Puppeteer |
| class | PuppeteerClient |
| class | PuppeteerCommunicator |
| class | SeleniumStorageHelper |
| class | SitemapExtractor |
| class | StorageAction |
| Represents a single storage-related action to perform before navigating to a URL. More... | |
| class | TabInfo |
| class | TabTuple |
| class | TaskExtensions |
| class | UrlHelper |
| Static helper class that executes storage cleanup actions defined in a GPALUrl. Attempts to use CDP (Chrome DevTools Protocol) for pre-navigation cleanup when possible. Falls back to JavaScript execution after navigation if CDP is unavailable. Logs all operations and errors via GPAL.PublishSimpleEvent. Also has some helper methods: AreEquivalent: compare two urls as being the same (www.google.com vs google.com) CheckRobotsTxt: check a url to see if it's allowed by robots.txt and return the robots.txt - used by gpal, you do not need to call unless you create your own workflow CheckRobotMetaTags: check a url to audit and output any Robot Meta tags - used by gpal, you do not need to call unless you create your own workflow. | |
| class | URLInfo |
| class | WindowHelper |
| class | WindowInfo |
| class | WindowSession |
| class | WindowTuple |
| class | WorkflowManager |
| Manages multiple workflows and their execution in loops for the Browser class. | |
| class | WorkflowRun |
| What became of one workflow handed to WorkflowScheduler: whether it finished, how long it took, and what it threw if it threw. Held in the order the workflows were added, so Index says which. More... | |
| class | WorkflowScheduler |
| Runs whole workflows at once, each one building and owning whatever it drives. Scheduling only: it starts workflows, limits how many are in flight, spaces their starts, and waits for them. It knows nothing about browsers, which is why one workflow can run Chrome on OttoMagic while the next runs Firefox on Selenium. For several steps against one browser you already have, use Browser.WithWorkflow(Action<IBrowser>) and Browser.Run instead. More... | |
| class | YouTubePlaylistResult |
| Result returned by GPALYouTube.CreatePlaylist containing the playlist ID and public URL. More... | |
| class | YouTubeUploadResult |
| Result returned by GPALYouTube.Upload containing the assigned video ID, public URL, and status. More... | |
| class | YouTubeVideoInfo |
| Video metadata returned by GPALYouTube.GetResults. Tags are populated for direct video lookups; search results leave Tags empty. More... | |