GPAL - Generally Positive Automation Library v1.0
GPAL The Fluent Automation LIbrary
Loading...
Searching...
No Matches
GenerallyPositive.Browser Namespace Reference

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...